Compare commits
1 commit
main
...
ci/codeql-
Author | SHA1 | Date | |
---|---|---|---|
|
40f7137df7 |
2235 changed files with 42206 additions and 92885 deletions
|
@ -6,8 +6,3 @@ fi
|
||||||
if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
|
if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
|
||||||
source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
|
source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "$WORKSPACE_DIR/tools/bsim" ]; then
|
|
||||||
export BSIM_OUT_PATH="$WORKSPACE_DIR/tools/bsim/"
|
|
||||||
export BSIM_COMPONENTS_PATH="$WORKSPACE_DIR/tools/bsim/components/"
|
|
||||||
fi
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/zmkfirmware/zmk-dev-arm:3.5
|
FROM zmkfirmware/zmk-dev-arm:2.4
|
||||||
|
|
||||||
COPY .bashrc tmp
|
COPY .bashrc tmp
|
||||||
RUN mv /tmp/.bashrc ~/.bashrc
|
RUN mv /tmp/.bashrc ~/.bashrc
|
||||||
|
|
|
@ -13,13 +13,9 @@
|
||||||
"type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules",
|
"type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules",
|
||||||
"type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools"
|
"type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools"
|
||||||
],
|
],
|
||||||
"customizations": {
|
"extensions": ["ms-vscode.cpptools"],
|
||||||
"vscode": {
|
"settings": {
|
||||||
"extensions": ["ms-vscode.cpptools"],
|
"terminal.integrated.shell.linux": "/bin/bash"
|
||||||
"settings": {
|
|
||||||
"terminal.integrated.shell.linux": "/bin/bash"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"forwardPorts": [3000]
|
"forwardPorts": [3000]
|
||||||
}
|
}
|
||||||
|
|
15
.github/pull_request_template.md
vendored
15
.github/pull_request_template.md
vendored
|
@ -1,15 +0,0 @@
|
||||||
<!-- If you're adding a board/shield please fill out this check-list, otherwise you can delete it -->
|
|
||||||
|
|
||||||
## Board/Shield Check-list
|
|
||||||
|
|
||||||
- [ ] This board/shield is tested working on real hardware
|
|
||||||
- [ ] Definitions follow the general style of other shields/boards upstream ([Reference](https://zmk.dev/docs/development/new-shield))
|
|
||||||
- [ ] `.zmk.yml` metadata file added
|
|
||||||
- [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
|
|
||||||
- [ ] General consistent formatting of DeviceTree files
|
|
||||||
- [ ] Keymaps do not use deprecated key defines (Check using the [upgrader tool](https://zmk.dev/docs/codes/keymap-upgrader))
|
|
||||||
- [ ] `&pro_micro` used in favor of `&pro_micro_d/a` if applicable
|
|
||||||
- [ ] If split, no name added for the right/peripheral half
|
|
||||||
- [ ] Kconfig.defconfig file correctly wraps _all_ configuration in conditional on the shield symbol
|
|
||||||
- [ ] `.conf` file has optional extra features commented out
|
|
||||||
- [ ] Keyboard/PCB is part of a shipped group buy or is generally available in stock to purchase (OSH/personal projects without general availability should create a zmk-config repo instead)
|
|
78
.github/workflows/ble-test.yml
vendored
78
.github/workflows/ble-test.yml
vendored
|
@ -1,78 +0,0 @@
|
||||||
name: BLE Tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- ".github/workflows/ble-test.yml"
|
|
||||||
- "app/tests/ble/**"
|
|
||||||
- "app/src/**"
|
|
||||||
- "app/run-ble-test.sh"
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- ".github/workflows/ble-test.yml"
|
|
||||||
- "app/tests/ble/**"
|
|
||||||
- "app/src/**"
|
|
||||||
- "app/run-ble-test.sh"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
collect-tests:
|
|
||||||
outputs:
|
|
||||||
test-dirs: ${{ steps.test-dirs.outputs.test-dirs }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Find test directories
|
|
||||||
id: test-dirs
|
|
||||||
run: |
|
|
||||||
cd app/tests/ble
|
|
||||||
export TESTS=$(ls -d * | grep -v central | jq -R -s -c 'split("\n")[:-1]')
|
|
||||||
echo "test-dirs=${TESTS}" > $GITHUB_OUTPUT
|
|
||||||
run-tests:
|
|
||||||
needs: collect-tests
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Cache west modules
|
|
||||||
uses: actions/cache@v4
|
|
||||||
env:
|
|
||||||
cache-name: cache-zephyr-modules
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
modules/
|
|
||||||
tools/
|
|
||||||
zephyr/
|
|
||||||
bootloader/
|
|
||||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
||||||
${{ runner.os }}-build-
|
|
||||||
${{ runner.os }}-
|
|
||||||
timeout-minutes: 2
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Initialize workspace (west init)
|
|
||||||
run: west init -l app
|
|
||||||
- name: Enable babblesim group filter
|
|
||||||
run: west config manifest.group-filter -- +babblesim
|
|
||||||
- name: Update modules (west update)
|
|
||||||
run: west update
|
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
|
||||||
run: west zephyr-export
|
|
||||||
- name: Build BabbleSim components
|
|
||||||
working-directory: tools/bsim
|
|
||||||
run: make everything
|
|
||||||
- name: Test ${{ matrix.test }}
|
|
||||||
working-directory: app
|
|
||||||
run: BSIM_COMPONENTS_PATH="${GITHUB_WORKSPACE}/tools/bsim/components" BSIM_OUT_PATH="${GITHUB_WORKSPACE}/tools/bsim" ./run-ble-test.sh tests/ble/${{ matrix.test }}
|
|
||||||
- name: Archive artifacts
|
|
||||||
if: ${{ always() }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: "${{ matrix.test }}-log-files"
|
|
||||||
path: app/build/**/*.log
|
|
182
.github/workflows/build-user-config.yml
vendored
182
.github/workflows/build-user-config.yml
vendored
|
@ -1,182 +0,0 @@
|
||||||
name: Reusable user config build
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
build_matrix_path:
|
|
||||||
description: "Path to the build matrix file"
|
|
||||||
default: "build.yaml"
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
config_path:
|
|
||||||
description: "Path to the config directory"
|
|
||||||
default: "config"
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
fallback_binary:
|
|
||||||
description: "Fallback binary format, if no *.uf2 file was built"
|
|
||||||
default: "bin"
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
archive_name:
|
|
||||||
description: "Archive output file name"
|
|
||||||
default: "firmware"
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
matrix:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Fetch Build Keyboards
|
|
||||||
outputs:
|
|
||||||
build_matrix: ${{ env.build_matrix }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install yaml2json
|
|
||||||
run: python3 -m pip install remarshal
|
|
||||||
|
|
||||||
- name: Fetch Build Matrix
|
|
||||||
run: |
|
|
||||||
echo "build_matrix=$(yaml2json '${{ inputs.build_matrix_path }}' | jq -c .)" >> $GITHUB_ENV
|
|
||||||
yaml2json "${{ inputs.build_matrix_path }}" | jq
|
|
||||||
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: zmkfirmware/zmk-build-arm:stable
|
|
||||||
needs: matrix
|
|
||||||
name: Build
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix: ${{ fromJson(needs.matrix.outputs.build_matrix) }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Create build directory
|
|
||||||
run: |
|
|
||||||
echo "build_dir=$(mktemp -d)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Prepare variables
|
|
||||||
shell: sh -x {0}
|
|
||||||
env:
|
|
||||||
board: ${{ matrix.board }}
|
|
||||||
shield: ${{ matrix.shield }}
|
|
||||||
artifact_name: ${{ matrix.artifact-name }}
|
|
||||||
snippet: ${{ matrix.snippet }}
|
|
||||||
run: |
|
|
||||||
if [ -e zephyr/module.yml ]; then
|
|
||||||
export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'"
|
|
||||||
new_tmp_dir="${TMPDIR:-/tmp}/zmk-config"
|
|
||||||
mkdir -p "${new_tmp_dir}"
|
|
||||||
echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${snippet}" ]; then
|
|
||||||
extra_west_args="-S \"${snippet}\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV
|
|
||||||
echo "extra_west_args=${extra_west_args}" >> $GITHUB_ENV
|
|
||||||
echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV
|
|
||||||
echo "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
|
|
||||||
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Copy config files to isolated temporary directory
|
|
||||||
run: |
|
|
||||||
if [ "${{ env.base_dir }}" != "${GITHUB_WORKSPACE}" ]; then
|
|
||||||
mkdir "${{ env.base_dir }}/${{ inputs.config_path }}"
|
|
||||||
cp -R ${{ inputs.config_path }}/* "${{ env.base_dir }}/${{ inputs.config_path }}/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Cache west modules
|
|
||||||
uses: actions/cache@v4
|
|
||||||
continue-on-error: true
|
|
||||||
env:
|
|
||||||
cache_name: cache-zephyr-${{ env.zephyr_version }}-modules
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
${{ env.base_dir }}/modules/
|
|
||||||
${{ env.base_dir }}/tools/
|
|
||||||
${{ env.base_dir }}/zephyr/
|
|
||||||
${{ env.base_dir }}/bootloader/
|
|
||||||
${{ env.base_dir }}/zmk/
|
|
||||||
key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-build-${{ env.cache_name }}-
|
|
||||||
${{ runner.os }}-build-
|
|
||||||
${{ runner.os }}-
|
|
||||||
|
|
||||||
- name: West Init
|
|
||||||
working-directory: ${{ env.base_dir }}
|
|
||||||
run: west init -l "${{ env.base_dir }}/${{ inputs.config_path }}"
|
|
||||||
|
|
||||||
- name: West Update
|
|
||||||
working-directory: ${{ env.base_dir }}
|
|
||||||
run: west update
|
|
||||||
|
|
||||||
- name: West Zephyr export
|
|
||||||
working-directory: ${{ env.base_dir }}
|
|
||||||
run: west zephyr-export
|
|
||||||
|
|
||||||
- name: West Build (${{ env.display_name }})
|
|
||||||
working-directory: ${{ env.base_dir }}
|
|
||||||
shell: sh -x {0}
|
|
||||||
run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" ${{ env.extra_west_args }} -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}
|
|
||||||
|
|
||||||
- name: ${{ env.display_name }} Kconfig file
|
|
||||||
run: |
|
|
||||||
if [ -f "${{ env.build_dir }}/zephyr/.config" ]
|
|
||||||
then
|
|
||||||
grep -v -e "^#" -e "^$" "${{ env.build_dir }}/zephyr/.config" | sort
|
|
||||||
else
|
|
||||||
echo "No Kconfig output"
|
|
||||||
fi
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
|
|
||||||
- name: ${{ env.display_name }} Devicetree file
|
|
||||||
run: |
|
|
||||||
if [ -f "${{ env.build_dir }}/zephyr/zephyr.dts" ]
|
|
||||||
then
|
|
||||||
cat "${{ env.build_dir }}/zephyr/zephyr.dts"
|
|
||||||
elif [ -f "${{ env.build_dir }}/zephyr/zephyr.dts.pre" ]
|
|
||||||
then
|
|
||||||
cat -s "${{ env.build_dir }}/zephyr/zephyr.dts.pre"
|
|
||||||
else
|
|
||||||
echo "No Devicetree output"
|
|
||||||
fi
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
|
|
||||||
- name: Rename artifacts
|
|
||||||
shell: sh -x {0}
|
|
||||||
run: |
|
|
||||||
mkdir "${{ env.build_dir }}/artifacts"
|
|
||||||
if [ -f "${{ env.build_dir }}/zephyr/zmk.uf2" ]
|
|
||||||
then
|
|
||||||
cp "${{ env.build_dir }}/zephyr/zmk.uf2" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.uf2"
|
|
||||||
elif [ -f "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" ]
|
|
||||||
then
|
|
||||||
cp "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.${{ inputs.fallback_binary }}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Archive (${{ env.display_name }})
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: artifact-${{ env.artifact_name }}
|
|
||||||
path: ${{ env.build_dir }}/artifacts
|
|
||||||
|
|
||||||
merge:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build
|
|
||||||
name: Merge Output Artifacts
|
|
||||||
steps:
|
|
||||||
- name: Merge Artifacts
|
|
||||||
uses: actions/upload-artifact/merge@v4
|
|
||||||
with:
|
|
||||||
name: ${{ inputs.archive_name }}
|
|
||||||
pattern: artifact-*
|
|
||||||
delete-merged: true
|
|
508
.github/workflows/build.yml
vendored
508
.github/workflows/build.yml
vendored
|
@ -9,32 +9,79 @@ on:
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/build.yml"
|
- ".github/workflows/build.yml"
|
||||||
- "app/**"
|
- "app/**"
|
||||||
schedule:
|
|
||||||
- cron: "22 4 * * *"
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'schedule' }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
permissions: {}
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
if: ${{ always() }}
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
image: zmkfirmware/zmk-build-arm:2.4
|
||||||
needs: compile-matrix
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include: ${{ fromJSON(needs.compile-matrix.outputs.include-list) }}
|
board:
|
||||||
|
- bluemicro840_v1
|
||||||
|
- nice_nano
|
||||||
|
- nrfmicro_13
|
||||||
|
- proton_c
|
||||||
|
shield:
|
||||||
|
- bfo9000_left
|
||||||
|
- bfo9000_right
|
||||||
|
- boardsource3x4
|
||||||
|
- corne_left
|
||||||
|
- corne_right
|
||||||
|
- cradio_left
|
||||||
|
- cradio_right
|
||||||
|
- crbn
|
||||||
|
- eek
|
||||||
|
- helix_left
|
||||||
|
- helix_right
|
||||||
|
- iris_left
|
||||||
|
- iris_right
|
||||||
|
- jian_left
|
||||||
|
- jian_right
|
||||||
|
- jorne_left
|
||||||
|
- jorne_right
|
||||||
|
- kyria_left
|
||||||
|
- kyria_right
|
||||||
|
- lily58_left
|
||||||
|
- lily58_right
|
||||||
|
- microdox_left
|
||||||
|
- microdox_right
|
||||||
|
- nibble
|
||||||
|
- qaz
|
||||||
|
- quefrency_left
|
||||||
|
- quefrency_right
|
||||||
|
- reviung41
|
||||||
|
- romac
|
||||||
|
- romac_plus
|
||||||
|
- settings_reset
|
||||||
|
- sofle_left
|
||||||
|
- sofle_right
|
||||||
|
- splitreus62_left
|
||||||
|
- splitreus62_right
|
||||||
|
- tg4x
|
||||||
|
- tidbit
|
||||||
|
cmake-args: [""]
|
||||||
|
include:
|
||||||
|
- board: bdn9_rev2
|
||||||
|
- board: dz60rgb_rev1
|
||||||
|
- board: nrf52840_m2
|
||||||
|
shield: m60
|
||||||
|
- board: planck_rev6
|
||||||
|
- board: proton_c
|
||||||
|
shield: clueboard_california
|
||||||
|
- board: nice_nano
|
||||||
|
shield: kyria_left
|
||||||
|
cmake-args: -DCONFIG_ZMK_DISPLAY=y
|
||||||
|
skip-archive: true
|
||||||
|
- board: nice_nano
|
||||||
|
shield: kyria_right
|
||||||
|
cmake-args: -DCONFIG_ZMK_DISPLAY=y
|
||||||
|
skip-archive: true
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v2
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v2
|
||||||
env:
|
env:
|
||||||
cache-name: cache-zephyr-modules
|
cache-name: cache-zephyr-modules
|
||||||
with:
|
with:
|
||||||
|
@ -43,11 +90,11 @@ jobs:
|
||||||
tools/
|
tools/
|
||||||
zephyr/
|
zephyr/
|
||||||
bootloader/
|
bootloader/
|
||||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
key: 4-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
4-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
${{ runner.os }}-build-
|
4-${{ runner.os }}-build-
|
||||||
${{ runner.os }}-
|
4-${{ runner.os }}-
|
||||||
timeout-minutes: 2
|
timeout-minutes: 2
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
- name: Initialize workspace (west init)
|
- name: Initialize workspace (west init)
|
||||||
|
@ -56,400 +103,29 @@ jobs:
|
||||||
run: west update
|
run: west update
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
- name: Use Node.js
|
- name: Prepare variables
|
||||||
uses: actions/setup-node@v4
|
id: variables
|
||||||
|
run: |
|
||||||
|
SHIELD_ARG=
|
||||||
|
ARTIFACT_NAME="${{ matrix.board }}"
|
||||||
|
|
||||||
|
if [ -n "${{ matrix.shield }}" ]; then
|
||||||
|
SHIELD_ARG="-DSHIELD=${{ matrix.shield }}"
|
||||||
|
ARTIFACT_NAME="${ARTIFACT_NAME}-${{ matrix.shield }}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARTIFACT_NAME="${ARTIFACT_NAME}-zmk"
|
||||||
|
|
||||||
|
echo ::set-output name=shield-arg::${SHIELD_ARG}
|
||||||
|
echo ::set-output name=artifact-name::${ARTIFACT_NAME}
|
||||||
|
- name: Build (west build)
|
||||||
|
run: west build -s app -b ${{ matrix.board }} -- ${{ steps.variables.outputs.shield-arg }} ${{ matrix.cmake-args }}
|
||||||
|
- name: Archive artifacts
|
||||||
|
if: ${{ !matrix.skip-archive }}
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
node-version: "14.x"
|
name: "${{ steps.variables.outputs.artifact-name }}"
|
||||||
- name: Install @actions/artifact
|
path: |
|
||||||
run: npm install @actions/artifact
|
build/zephyr/zmk.hex
|
||||||
- name: Build
|
build/zephyr/zmk.uf2
|
||||||
uses: actions/github-script@v7
|
continue-on-error: true
|
||||||
id: boards-list
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
const execSync = require('child_process').execSync;
|
|
||||||
|
|
||||||
const buildShieldArgs = JSON.parse(`${{ matrix.shieldArgs }}`);
|
|
||||||
|
|
||||||
let error = false;
|
|
||||||
|
|
||||||
for (const shieldArgs of buildShieldArgs) {
|
|
||||||
try {
|
|
||||||
console.log(`::group::${{ matrix.board}} ${shieldArgs.shield} Build`)
|
|
||||||
|
|
||||||
const output = execSync(`west build -s app -p -b ${{ matrix.board }} ${shieldArgs.snippet ? '-S ' + shieldArgs.snippet : ''} -- ${shieldArgs.shield ? '-DSHIELD="' + shieldArgs.shield + '"' : ''} ${shieldArgs['cmake-args'] || ''}`);
|
|
||||||
|
|
||||||
console.log(output.toString());
|
|
||||||
} catch (e) {
|
|
||||||
console.error(`::error::Failed to build ${{ matrix.board }} ${shieldArgs.shield} ${shieldArgs['cmake-args']}`);
|
|
||||||
console.error(e);
|
|
||||||
error = true;
|
|
||||||
} finally {
|
|
||||||
console.log('::endgroup::');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (error) {
|
|
||||||
throw new Error('Failed to build one or more configurations');
|
|
||||||
}
|
|
||||||
- name: Upload artifacts
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
continue-on-error: ${{ github.event_name == 'pull_request' }}
|
|
||||||
id: boards-upload
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const fs = require('fs');
|
|
||||||
const {default: artifact} = require('@actions/artifact');
|
|
||||||
|
|
||||||
const buildShieldArgs = JSON.parse(`${{ matrix.shieldArgs }}`);
|
|
||||||
|
|
||||||
let error = false;
|
|
||||||
|
|
||||||
for (const shieldArgs of buildShieldArgs) {
|
|
||||||
try {
|
|
||||||
console.log(`::group::${{ matrix.board}} ${shieldArgs.shield} Upload`)
|
|
||||||
|
|
||||||
const fileExtensions = ["hex", "uf2"];
|
|
||||||
|
|
||||||
const files = fileExtensions
|
|
||||||
.map(extension => "build/zephyr/zmk." + extension)
|
|
||||||
.filter(path => fs.existsSync(path));
|
|
||||||
|
|
||||||
const rootDirectory = 'build/zephyr';
|
|
||||||
const options = {
|
|
||||||
continueOnError: true
|
|
||||||
}
|
|
||||||
|
|
||||||
const cmakeName = shieldArgs['cmake-args'] ? '-' + (shieldArgs.nickname || shieldArgs['cmake-args'].split(' ').join('')) : '';
|
|
||||||
const artifactName = `${{ matrix.board }}${shieldArgs.shield ? '-' + shieldArgs.shield : ''}${cmakeName}-zmk`;
|
|
||||||
|
|
||||||
await artifact.uploadArtifact(artifactName, files, rootDirectory, options);
|
|
||||||
} catch (e) {
|
|
||||||
console.error(`::error::Failed to upload ${{ matrix.board }} ${shieldArgs.shield} ${shieldArgs['cmake-args']}`);
|
|
||||||
console.error(e);
|
|
||||||
error = true;
|
|
||||||
} finally {
|
|
||||||
console.log('::endgroup::');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (error) {
|
|
||||||
throw new Error('Failed to build one or more configurations');
|
|
||||||
}
|
|
||||||
compile-matrix:
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [core-coverage, board-changes, nightly]
|
|
||||||
outputs:
|
|
||||||
include-list: ${{ steps.compile-list.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Join build lists
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
id: compile-list
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const coreCoverage = `${{ needs.core-coverage.outputs.core-include }}` || "[]";
|
|
||||||
const boardChanges = `${{ needs.board-changes.outputs.boards-include }}` || "[]";
|
|
||||||
const nightly = `${{ needs.nightly.outputs.nightly-include }}` || "[]";
|
|
||||||
|
|
||||||
const combined = [
|
|
||||||
...JSON.parse(coreCoverage),
|
|
||||||
...JSON.parse(boardChanges),
|
|
||||||
...JSON.parse(nightly)
|
|
||||||
];
|
|
||||||
const combinedUnique = [...new Map(combined.map(el => [JSON.stringify(el), el])).values()];
|
|
||||||
|
|
||||||
const perBoard = {};
|
|
||||||
|
|
||||||
for (const configuration of combinedUnique) {
|
|
||||||
if (!perBoard[configuration.board])
|
|
||||||
perBoard[configuration.board] = [];
|
|
||||||
|
|
||||||
perBoard[configuration.board].push({
|
|
||||||
shield: configuration.shield,
|
|
||||||
'cmake-args': configuration['cmake-args'],
|
|
||||||
snippet: configuration.snippet,
|
|
||||||
nickname: configuration.nickname
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.entries(perBoard).map(([board, shieldArgs]) => ({
|
|
||||||
board,
|
|
||||||
shieldArgs: JSON.stringify(shieldArgs),
|
|
||||||
}));
|
|
||||||
core-coverage:
|
|
||||||
if: ${{ needs.get-changed-files.outputs.core-changes == 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: get-changed-files
|
|
||||||
outputs:
|
|
||||||
core-include: ${{ steps.core-list.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Use Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "14.x"
|
|
||||||
- name: Install js-yaml
|
|
||||||
run: npm install js-yaml
|
|
||||||
- uses: actions/github-script@v7
|
|
||||||
id: core-list
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const fs = require('fs');
|
|
||||||
const yaml = require('js-yaml');
|
|
||||||
|
|
||||||
const coreCoverage = yaml.load(fs.readFileSync('app/core-coverage.yml', 'utf8'));
|
|
||||||
|
|
||||||
let include = coreCoverage.board.flatMap(board =>
|
|
||||||
coreCoverage.shield.map(shield => ({ board, shield }))
|
|
||||||
);
|
|
||||||
|
|
||||||
return [...include, ...coreCoverage.include];
|
|
||||||
board-changes:
|
|
||||||
if: ${{ needs.get-changed-files.outputs.board-changes == 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [get-grouped-hardware, get-changed-files]
|
|
||||||
outputs:
|
|
||||||
boards-include: ${{ steps.boards-list.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Use Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "14.x"
|
|
||||||
- name: Install js-yaml
|
|
||||||
run: npm install js-yaml
|
|
||||||
- uses: actions/github-script@v7
|
|
||||||
id: boards-list
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const fs = require('fs');
|
|
||||||
const yaml = require('js-yaml');
|
|
||||||
|
|
||||||
const changedFiles = JSON.parse(`${{ needs.get-changed-files.outputs.changed-files }}`);
|
|
||||||
const metadata = JSON.parse(`${{ needs.get-grouped-hardware.outputs.organized-metadata }}`);
|
|
||||||
const boardChanges = new Set(changedFiles.filter(f => f.startsWith('app/boards')).map(f => f.split('/').slice(0, 4).join('/')));
|
|
||||||
|
|
||||||
return (await Promise.all([...boardChanges].flatMap(async bc => {
|
|
||||||
const globber = await glob.create(bc + "/*.zmk.yml");
|
|
||||||
const files = await globber.glob();
|
|
||||||
|
|
||||||
const aggregated = files.flatMap((f) =>
|
|
||||||
yaml.loadAll(fs.readFileSync(f, "utf8"))
|
|
||||||
);
|
|
||||||
|
|
||||||
const boardAndShield = (b, s) => {
|
|
||||||
if (s.siblings) {
|
|
||||||
return s.siblings.map(shield => ({
|
|
||||||
board: b.id,
|
|
||||||
shield,
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
board: b.id,
|
|
||||||
shield: s.id
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return aggregated.flatMap(hm => {
|
|
||||||
switch (hm.type) {
|
|
||||||
case "board":
|
|
||||||
if (hm.features && hm.features.includes("keys")) {
|
|
||||||
if (hm.siblings) {
|
|
||||||
return hm.siblings.map(board => ({
|
|
||||||
board,
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
board: hm.id
|
|
||||||
};
|
|
||||||
}
|
|
||||||
} else if (hm.exposes) {
|
|
||||||
return hm.exposes.flatMap(i =>
|
|
||||||
metadata.interconnects[i].shields.flatMap(s => boardAndShield(hm, s))
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
console.error("Board without keys or interconnect");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "shield":
|
|
||||||
if (hm.features && hm.features.includes("keys")) {
|
|
||||||
return hm.requires.flatMap(i =>
|
|
||||||
metadata.interconnects[i].boards.flatMap(b => boardAndShield(b, hm))
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
console.warn("Unhandled shield without keys");
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "interconnect":
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}))).flat();
|
|
||||||
nightly:
|
|
||||||
if: ${{ github.event_name == 'schedule' && github.repository_owner == 'zmkfirmware' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: get-grouped-hardware
|
|
||||||
outputs:
|
|
||||||
nightly-include: ${{ steps.nightly-list.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Create nightly list
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
id: nightly-list
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const metadata = JSON.parse(`${{ needs.get-grouped-hardware.outputs.organized-metadata }}`);
|
|
||||||
|
|
||||||
let includeOnboard = metadata.onboard.flatMap(b => {
|
|
||||||
if (b.siblings) {
|
|
||||||
return b.siblings.map(board => ({
|
|
||||||
board,
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
board: b.id,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let includeInterconnect = Object.values(metadata.interconnects).flatMap(i =>
|
|
||||||
i.boards.flatMap(b =>
|
|
||||||
i.shields.flatMap(s => {
|
|
||||||
if (s.siblings) {
|
|
||||||
return s.siblings.map(shield => ({
|
|
||||||
board: b.id,
|
|
||||||
shield,
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
board: b.id,
|
|
||||||
shield: s.id,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
return [...includeOnboard, ...includeInterconnect];
|
|
||||||
get-grouped-hardware:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
organized-metadata: ${{ steps.organize-metadata.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Use Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "14.x"
|
|
||||||
- name: Install js-yaml
|
|
||||||
run: npm install js-yaml
|
|
||||||
- name: Aggregate Metadata
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
id: aggregate-metadata
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const fs = require('fs');
|
|
||||||
const yaml = require('js-yaml');
|
|
||||||
|
|
||||||
const globber = await glob.create("app/boards/**/*.zmk.yml");
|
|
||||||
const files = await globber.glob();
|
|
||||||
|
|
||||||
const aggregated = files.flatMap((f) =>
|
|
||||||
yaml.loadAll(fs.readFileSync(f, "utf8"))
|
|
||||||
);
|
|
||||||
|
|
||||||
return JSON.stringify(aggregated).replace(/\\/g,"\\\\").replace(/`/g,"\\`");
|
|
||||||
result-encoding: string
|
|
||||||
|
|
||||||
- name: Organize Metadata
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
id: organize-metadata
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const hardware = JSON.parse(`${{ steps.aggregate-metadata.outputs.result }}`);
|
|
||||||
|
|
||||||
const grouped = hardware.reduce((agg, hm) => {
|
|
||||||
switch (hm.type) {
|
|
||||||
case "board":
|
|
||||||
if (hm.features && hm.features.includes("keys")) {
|
|
||||||
agg.onboard.push(hm);
|
|
||||||
} else if (hm.exposes) {
|
|
||||||
hm.exposes.forEach((element) => {
|
|
||||||
let ic = agg.interconnects[element] || {
|
|
||||||
boards: [],
|
|
||||||
shields: [],
|
|
||||||
};
|
|
||||||
ic.boards.push(hm);
|
|
||||||
agg.interconnects[element] = ic;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.error("Board without keys or interconnect");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "shield":
|
|
||||||
if (hm.features && hm.features.includes("keys")) {
|
|
||||||
hm.requires.forEach((id) => {
|
|
||||||
let ic = agg.interconnects[id] || { boards: [], shields: [] };
|
|
||||||
ic.shields.push(hm);
|
|
||||||
agg.interconnects[id] = ic;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "interconnect":
|
|
||||||
let ic = agg.interconnects[hm.id] || { boards: [], shields: [] };
|
|
||||||
ic.interconnect = hm;
|
|
||||||
agg.interconnects[hm.id] = ic;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return agg;
|
|
||||||
},
|
|
||||||
{ onboard: [], interconnects: {} });
|
|
||||||
|
|
||||||
return JSON.stringify(grouped).replace(/\\/g,"\\\\").replace(/`/g,"\\`");
|
|
||||||
result-encoding: string
|
|
||||||
get-changed-files:
|
|
||||||
if: ${{ github.event_name != 'schedule' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
changed-files: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
board-changes: ${{ steps.board-changes.outputs.result }}
|
|
||||||
core-changes: ${{ steps.core-changes.outputs.result }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: tj-actions/changed-files@v45
|
|
||||||
id: changed-files
|
|
||||||
with:
|
|
||||||
json: true
|
|
||||||
escape_json: false
|
|
||||||
- uses: actions/github-script@v7
|
|
||||||
id: board-changes
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all_changed_files }}`);
|
|
||||||
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
|
||||||
return boardChanges.length ? 'true' : 'false';
|
|
||||||
result-encoding: string
|
|
||||||
- uses: actions/github-script@v7
|
|
||||||
id: core-changes
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all_changed_files }}`);
|
|
||||||
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
|
||||||
const appChanges = changedFiles.filter(f => f.startsWith('app'));
|
|
||||||
const ymlChanges = changedFiles.includes('.github/workflows/build.yml');
|
|
||||||
return boardChanges.length < appChanges.length || ymlChanges ? 'true' : 'false';
|
|
||||||
result-encoding: string
|
|
||||||
|
|
29
.github/workflows/clang-format-lint.yml
vendored
Normal file
29
.github/workflows/clang-format-lint.yml
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
name: Clang Format
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/clang-format-lint.yml"
|
||||||
|
- "app/boards/**/*.c"
|
||||||
|
- "app/include/**/*.h"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/drivers/**/*.c"
|
||||||
|
- "app/drivers/**/*.h"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/clang-format-lint.yml"
|
||||||
|
- "app/boards/**/*.c"
|
||||||
|
- "app/include/**/*.h"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/drivers/**/*.c"
|
||||||
|
- "app/drivers/**/*.h"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: DoozyX/clang-format-lint-action@v0.11
|
||||||
|
with:
|
||||||
|
source: "./app"
|
||||||
|
extensions: "h,c"
|
61
.github/workflows/codeql-analysis.yml
vendored
Normal file
61
.github/workflows/codeql-analysis.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# Copyright (c) 2021 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ main ]
|
||||||
|
schedule:
|
||||||
|
- cron: '40 19 * * 4'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: zmkfirmware/zmk-build-arm:2.4
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'cpp']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
|
||||||
|
- name: Cache west modules
|
||||||
|
uses: actions/cache@v2
|
||||||
|
env:
|
||||||
|
cache-name: cache-zephyr-modules
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
modules/
|
||||||
|
tools/
|
||||||
|
zephyr/
|
||||||
|
bootloader/
|
||||||
|
key: codeql-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
|
restore-keys: |
|
||||||
|
codeql-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
|
codeql-${{ runner.os }}-build-
|
||||||
|
codeql-${{ nrunner.os }}-
|
||||||
|
timeout-minutes: 2
|
||||||
|
continue-on-error: true
|
||||||
|
- name: Initialize workspace (west init)
|
||||||
|
run: west init -l app
|
||||||
|
- name: Update modules (west update)
|
||||||
|
run: west update
|
||||||
|
- name: Build (west build)
|
||||||
|
run: west build -s app -b nice_nano -- -DSHIELD=qaz
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
13
.github/workflows/doc-checks.yml
vendored
13
.github/workflows/doc-checks.yml
vendored
|
@ -14,23 +14,20 @@ jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v2
|
||||||
- uses: bahmutov/npm-install@v1
|
- uses: bahmutov/npm-install@v1
|
||||||
with:
|
with:
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
- name: ESLint
|
- name: ESLint
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
typecheck:
|
prettier:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v2
|
||||||
- uses: bahmutov/npm-install@v1
|
- uses: bahmutov/npm-install@v1
|
||||||
with:
|
with:
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
- name: Build
|
- name: Prettier check
|
||||||
run: npm run build
|
run: npm run prettier:check
|
||||||
working-directory: docs
|
|
||||||
- name: TypeScript check
|
|
||||||
run: npm run typecheck
|
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
name: Hardware Metadata Validation
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- ".github/workflows/hardware-metadata-validation.yml"
|
|
||||||
- "schema/hardware-metadata.schema.json"
|
|
||||||
- "app/boards/**/*.zmk.yml"
|
|
||||||
- "app/scripts/west_commands/metadata.py"
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- ".github/workflows/hardware-metadata-validation.yml"
|
|
||||||
- "schema/hardware-metadata.schema.json"
|
|
||||||
- "app/boards/**/*.zmk.yml"
|
|
||||||
- "app/scripts/west_commands/metadata.py"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
validate-metadata:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: docker.io/zmkfirmware/zmk-dev-arm:3.5
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install --break-system-packages -r app/scripts/requirements.txt
|
|
||||||
- name: West init
|
|
||||||
run: west init -l app
|
|
||||||
- name: Update modules (west update)
|
|
||||||
run: west update
|
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
|
||||||
run: west zephyr-export
|
|
||||||
- name: Validate Hardware Metadata
|
|
||||||
working-directory: app
|
|
||||||
run: west metadata check
|
|
15
.github/workflows/pre-commit.yml
vendored
15
.github/workflows/pre-commit.yml
vendored
|
@ -1,15 +0,0 @@
|
||||||
name: pre-commit
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pre-commit:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: 3.x
|
|
||||||
- uses: pre-commit/action@v3.0.1
|
|
44
.github/workflows/test.yml
vendored
44
.github/workflows/test.yml
vendored
|
@ -6,41 +6,22 @@ on:
|
||||||
- ".github/workflows/test.yml"
|
- ".github/workflows/test.yml"
|
||||||
- "app/tests/**"
|
- "app/tests/**"
|
||||||
- "app/src/**"
|
- "app/src/**"
|
||||||
- "app/include/**"
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/test.yml"
|
- ".github/workflows/test.yml"
|
||||||
- "app/tests/**"
|
- "app/tests/**"
|
||||||
- "app/src/**"
|
- "app/src/**"
|
||||||
- "app/include/**"
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
collect-tests:
|
integration_test:
|
||||||
outputs:
|
|
||||||
test-dirs: ${{ steps.test-dirs.outputs.test-dirs }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Find test directories
|
|
||||||
id: test-dirs
|
|
||||||
run: |
|
|
||||||
cd app/tests/
|
|
||||||
export TESTS=$(ls -d * | grep -v ble | jq -R -s -c 'split("\n")[:-1]')
|
|
||||||
echo "test-dirs=${TESTS}" >> $GITHUB_OUTPUT
|
|
||||||
run-tests:
|
|
||||||
needs: collect-tests
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
image: zmkfirmware/zmk-build-arm:2.4
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v2
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v2
|
||||||
env:
|
env:
|
||||||
cache-name: cache-zephyr-modules
|
cache-name: cache-zephyr-modules
|
||||||
with:
|
with:
|
||||||
|
@ -49,11 +30,11 @@ jobs:
|
||||||
tools/
|
tools/
|
||||||
zephyr/
|
zephyr/
|
||||||
bootloader/
|
bootloader/
|
||||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
key: 4-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
4-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
${{ runner.os }}-build-
|
4-${{ runner.os }}-build-
|
||||||
${{ runner.os }}-
|
4-${{ runner.os }}-
|
||||||
timeout-minutes: 2
|
timeout-minutes: 2
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
- name: Initialize workspace (west init)
|
- name: Initialize workspace (west init)
|
||||||
|
@ -62,12 +43,11 @@ jobs:
|
||||||
run: west update
|
run: west update
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
- name: Test ${{ matrix.test }}
|
- name: Test all
|
||||||
working-directory: app
|
run: west test
|
||||||
run: west test tests/${{ matrix.test }}
|
|
||||||
- name: Archive artifacts
|
- name: Archive artifacts
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: "${{ matrix.test }}-log-files"
|
name: "log-files"
|
||||||
path: app/build/**/*.log
|
path: app/build/**/*.log
|
||||||
|
|
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -5,14 +5,5 @@
|
||||||
/zephyr
|
/zephyr
|
||||||
/zmk-config
|
/zmk-config
|
||||||
/build
|
/build
|
||||||
|
|
||||||
# macOS
|
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
|
||||||
# Python
|
|
||||||
__pycache__
|
__pycache__
|
||||||
.python-version
|
|
||||||
.venv
|
|
||||||
|
|
||||||
# clangd
|
|
||||||
app/.cache/
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
fail_fast: false
|
|
||||||
repos:
|
|
||||||
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
|
||||||
rev: v1.5.1
|
|
||||||
hooks:
|
|
||||||
- id: remove-tabs
|
|
||||||
exclude: "vendor-prefixes\\.txt$"
|
|
||||||
- repo: https://github.com/pocc/pre-commit-hooks
|
|
||||||
rev: v1.3.5
|
|
||||||
hooks:
|
|
||||||
- id: clang-format
|
|
||||||
args:
|
|
||||||
- -i
|
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
||||||
rev: v2.7.1
|
|
||||||
hooks:
|
|
||||||
- id: prettier
|
|
||||||
# Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29
|
|
||||||
additional_dependencies:
|
|
||||||
- prettier@2.8.7
|
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
||||||
rev: v4.4.0
|
|
||||||
hooks:
|
|
||||||
- id: trailing-whitespace
|
|
||||||
- id: check-yaml
|
|
||||||
- id: check-added-large-files
|
|
||||||
- id: check-shebang-scripts-are-executable
|
|
||||||
exclude: "\\.mustache$"
|
|
10
.vscode/extensions.json
vendored
10
.vscode/extensions.json
vendored
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"esbenp.prettier-vscode",
|
|
||||||
"ms-python.python",
|
|
||||||
"ms-vscode.cpptools",
|
|
||||||
"plorefice.devicetree",
|
|
||||||
"twxs.cmake",
|
|
||||||
"unifiedjs.vscode-mdx"
|
|
||||||
]
|
|
||||||
}
|
|
16
.vscode/settings.json
vendored
16
.vscode/settings.json
vendored
|
@ -2,21 +2,5 @@
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.overlay": "dts",
|
"*.overlay": "dts",
|
||||||
"*.keymap": "dts"
|
"*.keymap": "dts"
|
||||||
},
|
|
||||||
"python.formatting.provider": "black",
|
|
||||||
"[c]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[javascript][javascriptreact][typescript][typescriptreact]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[python]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "ms-python.python"
|
|
||||||
},
|
|
||||||
"[css][json][jsonc][html][markdown][yaml]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,7 +60,7 @@ representative at an online or offline event.
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
reported to the community leaders responsible for enforcement at
|
reported to the community leaders responsible for enforcement at
|
||||||
conduct@zmk.dev.
|
conduct@zmkfirmware.dev.
|
||||||
All complaints will be reviewed and investigated promptly and fairly.
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
All community leaders are obligated to respect the privacy and security of the
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
|
|
@ -7,7 +7,7 @@ you have any questions, please come join us on the
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
|
|
||||||
All community members are expected to abide by the [Code of Conduct][code-of-conduct].
|
All community members are expected to abide by the [Code of Conduct][code-of-conduct].
|
||||||
For any and all conduct inquiries or concerns, please contact conduct@zmk.dev.
|
For any and all conduct inquiries or concerns, please contact conduct@zmkfirmware.dev.
|
||||||
|
|
||||||
[code-of-conduct]: https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md
|
[code-of-conduct]: https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md
|
||||||
|
|
||||||
|
@ -35,8 +35,8 @@ ZMK project.
|
||||||
|
|
||||||
### Before Submitting a Report
|
### Before Submitting a Report
|
||||||
|
|
||||||
- Review the [Frequently Asked Questions](https://zmk.dev/docs/faq).
|
- Review the [Frequently Asked Questions](https://zmkfirmware.dev/docs/faq).
|
||||||
- Check the [Troubleshooting Guide](https://zmk.dev/docs/troubleshooting) for answers.
|
- Check the [Troubleshooting Guide](https://zmkfirmware.dev/docs/troubleshooting) for answers.
|
||||||
- Search the [open issues](https://github.com/zmkfirmware/zmk/issues) for an existing report that
|
- Search the [open issues](https://github.com/zmkfirmware/zmk/issues) for an existing report that
|
||||||
matches your problem.
|
matches your problem.
|
||||||
|
|
||||||
|
@ -47,10 +47,10 @@ To open a report:
|
||||||
- Head to https://github.com/zmkfirmware/zmk/issues/new
|
- Head to https://github.com/zmkfirmware/zmk/issues/new
|
||||||
- Provide an accurate summary of the issue in the title.
|
- Provide an accurate summary of the issue in the title.
|
||||||
- Provide as much detail as you can about the issue including:
|
- Provide as much detail as you can about the issue including:
|
||||||
- What [board/shield](https://zmk.dev/docs/faq#what-is-a-board) you are using.
|
- What [board/shield](https://zmkfirmware.dev/docs/faq#what-is-a-board) you are using.
|
||||||
- A link to the user repository, if you used it to build your firmware.
|
- A link to the user repository, if you used it to build your firmware.
|
||||||
- Exact steps to reproduce the problem.
|
- Exact steps to reproduce the problem.
|
||||||
- Any relevant screenshots or [logs](https://zmk.dev/docs/dev-guide-usb-logging)
|
- Any relevant screenshots or [logs](https://zmkfirmware.dev/docs/dev-guide-usb-logging)
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
|
@ -81,23 +81,12 @@ documentation to areas not currently covered are greatly appreciated.
|
||||||
- To get started, from the `docs/` directory, run `npm ci` and then `npm start`.
|
- To get started, from the `docs/` directory, run `npm ci` and then `npm start`.
|
||||||
- Enhancements should be submitted as pull requests to the `main` branch of ZMK.
|
- Enhancements should be submitted as pull requests to the `main` branch of ZMK.
|
||||||
|
|
||||||
### Formatting
|
|
||||||
|
|
||||||
ZMK uses `prettier` to format documentation files. You can run prettier with `npm run prettier:format`.
|
|
||||||
You can setup git to run prettier automatically when you commit by installing the pre-commit hooks: `pip3 install pre-commit`, `pre-commit install`.
|
|
||||||
|
|
||||||
### Linting
|
|
||||||
|
|
||||||
This repository utilizes ESLint for code linting to ensure consistent code style and identify potential errors or bugs early in the development process.
|
|
||||||
|
|
||||||
You can run ESLint with `npm run lint` to verify your changes.
|
|
||||||
|
|
||||||
## Code Contributions
|
## Code Contributions
|
||||||
|
|
||||||
### Development Setup
|
### Development Setup
|
||||||
|
|
||||||
To get your development environment setup going, start at the
|
To get your development environment setup going, start at the
|
||||||
[basic setup](https://zmk.dev/docs/development/setup/) docs, and make sure you can build and flash
|
[basic setup](https://zmkfirmware.dev/docs/dev-setup) docs, and make sure you can build and flash
|
||||||
your own locally built firmware.
|
your own locally built firmware.
|
||||||
|
|
||||||
### Formatting
|
### Formatting
|
||||||
|
@ -106,8 +95,6 @@ ZMK uses `clang-format` to ensure consist formatting for our source code. Before
|
||||||
changes, make sure you've manually run `clang-format`, or have your IDE configured to auto-format
|
changes, make sure you've manually run `clang-format`, or have your IDE configured to auto-format
|
||||||
on save.
|
on save.
|
||||||
|
|
||||||
You can setup git to run `clang-format` automatically when you commit by installing the pre-commit hooks: `pip3 install pre-commit`, `pre-commit install`.
|
|
||||||
|
|
||||||
### Commit Messages
|
### Commit Messages
|
||||||
|
|
||||||
The ZMK project is working towards, but not yet enforcing, the use of
|
The ZMK project is working towards, but not yet enforcing, the use of
|
||||||
|
@ -130,4 +117,4 @@ When opening a pull request with your changes, please:
|
||||||
- Requested testing by reviewers or testers.
|
- Requested testing by reviewers or testers.
|
||||||
- Screenshots or logs that support understanding the change.
|
- Screenshots or logs that support understanding the change.
|
||||||
|
|
||||||
[discord-invite]: https://zmk.dev/community/discord/invite
|
[discord-invite]: https://zmkfirmware.dev/community/discord/invite
|
||||||
|
|
10
README.md
10
README.md
|
@ -1,13 +1,13 @@
|
||||||
# Zephyr™ Mechanical Keyboard (ZMK) Firmware
|
# Zephyr™ Mechanical Keyboard (ZMK) Firmware
|
||||||
|
|
||||||
[](https://zmk.dev/community/discord/invite)
|
[](https://zmkfirmware.dev/community/discord/invite)
|
||||||
[](https://github.com/zmkfirmware/zmk/actions)
|
[](https://github.com/zmkfirmware/zmk/actions)
|
||||||
[](CODE_OF_CONDUCT.md)
|
[](CODE_OF_CONDUCT.md)
|
||||||
|
|
||||||
[ZMK Firmware](https://zmk.dev/) is an open source ([MIT](LICENSE)) keyboard firmware built on the [Zephyr™ Project](https://www.zephyrproject.org/) Real Time Operating System (RTOS). ZMK's goal is to provide a modern, wireless, and powerful firmware free of licensing issues.
|
[ZMK Firmware](https://zmkfirmware.dev/) is an open source (MIT) keyboard firmware built on the [Zephyr™ Project](https://www.zephyrproject.org/) Real Time Operating System (RTOS). ZMK's goal is to provide a modern, wireless, and powerful firmware free of licensing issues.
|
||||||
|
|
||||||
Check out the website to learn more: https://zmk.dev/.
|
Check out the website to learn more: https://zmkfirmware.dev/
|
||||||
|
|
||||||
You can also come join our [ZMK Discord Server](https://zmk.dev/community/discord/invite).
|
You can also come join our [ZMK Discord Server](https://zmkfirmware.dev/community/discord/invite)
|
||||||
|
|
||||||
To review features, check out the [feature overview](https://zmk.dev/docs/). ZMK is under active development, and new features are listed with the [enhancement label](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) in GitHub. Please feel free to add 👍 to the issue description of any requests to upvote the feature.
|
To review features, check out the [feature overview](https://zmkfirmware.dev/docs/). ZMK is under active development, and new features are listed with the [enhancement label](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) in GitHub. Please feel free to add 👍 to the issue description of any requests to upvote the feature.
|
||||||
|
|
1
app/.gitignore
vendored
1
app/.gitignore
vendored
|
@ -1,2 +1 @@
|
||||||
build/
|
build/
|
||||||
node_modules/
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
endOfLine: "auto",
|
|
||||||
};
|
|
|
@ -1,57 +1,51 @@
|
||||||
cmake_minimum_required(VERSION 3.13.1)
|
cmake_minimum_required(VERSION 3.13.1)
|
||||||
|
|
||||||
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
||||||
|
list(APPEND BOARD_ROOT ${CMAKE_SOURCE_DIR})
|
||||||
|
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module")
|
# Add our custom Zephyr module for drivers w/ syscalls, etc.
|
||||||
|
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr)
|
||||||
|
|
||||||
|
list(APPEND ZEPHYR_EXTRA_MODULES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers
|
||||||
|
)
|
||||||
|
|
||||||
|
include(cmake/zmk_config.cmake)
|
||||||
|
|
||||||
# Find Zephyr. This also loads Zephyr's build system.
|
# Find Zephyr. This also loads Zephyr's build system.
|
||||||
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
||||||
project(zmk)
|
project(zmk)
|
||||||
|
|
||||||
zephyr_linker_sources(SECTIONS include/linker/zmk-behaviors.ld)
|
|
||||||
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
||||||
|
|
||||||
if(CONFIG_ZMK_BEHAVIOR_LOCAL_IDS)
|
|
||||||
zephyr_linker_sources(DATA_SECTIONS include/linker/zmk-behavior-local-id-map.ld)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/behavior.h)
|
|
||||||
zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/ext_power.h)
|
|
||||||
|
|
||||||
# Add your source file to the "app" target. This must come after
|
# Add your source file to the "app" target. This must come after
|
||||||
# find_package(Zephyr) which defines the target.
|
# find_package(Zephyr) which defines the target.
|
||||||
target_include_directories(app PRIVATE include)
|
target_include_directories(app PRIVATE include)
|
||||||
target_sources(app PRIVATE src/stdlib.c)
|
target_sources_ifdef(CONFIG_ZMK_SLEEP app PRIVATE src/power.c)
|
||||||
target_sources(app PRIVATE src/activity.c)
|
target_sources(app PRIVATE src/activity.c)
|
||||||
target_sources(app PRIVATE src/behavior.c)
|
target_sources(app PRIVATE src/kscan.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_KSCAN_SIDEBAND_BEHAVIORS app PRIVATE src/kscan_sideband_behaviors.c)
|
|
||||||
target_sources(app PRIVATE src/matrix_transform.c)
|
target_sources(app PRIVATE src/matrix_transform.c)
|
||||||
target_sources(app PRIVATE src/physical_layouts.c)
|
target_sources(app PRIVATE src/hid.c)
|
||||||
target_sources(app PRIVATE src/sensors.c)
|
target_sources(app PRIVATE src/sensors.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/wpm.c)
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/wpm.c)
|
||||||
target_sources(app PRIVATE src/event_manager.c)
|
target_sources(app PRIVATE src/event_manager.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_PM app PRIVATE src/pm.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_GPIO_KEY_WAKEUP_TRIGGER app PRIVATE src/gpio_key_wakeup_trigger.c)
|
|
||||||
target_sources(app PRIVATE src/events/activity_state_changed.c)
|
target_sources(app PRIVATE src/events/activity_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/position_state_changed.c)
|
target_sources(app PRIVATE src/events/position_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/layer_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/sensor_event.c)
|
target_sources(app PRIVATE src/events/sensor_event.c)
|
||||||
target_sources(app PRIVATE src/events/mouse_button_state_changed.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
|
||||||
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/battery_state_changed.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SOFT_OFF app PRIVATE src/behaviors/behavior_soft_off.c)
|
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL)
|
||||||
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
|
||||||
target_sources(app PRIVATE src/hid.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_MOUSE app PRIVATE src/mouse.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
|
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_HOLD_TAP app PRIVATE src/behaviors/behavior_hold_tap.c)
|
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STICKY_KEY app PRIVATE src/behaviors/behavior_sticky_key.c)
|
target_sources(app PRIVATE src/behaviors/behavior_sticky_key.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_caps_word.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_key_repeat.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MACRO app PRIVATE src/behaviors/behavior_macro.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
|
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_mod_morph.c)
|
target_sources(app PRIVATE src/behaviors/behavior_mod_morph.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
|
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
|
||||||
|
@ -59,74 +53,29 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_to_layer.c)
|
target_sources(app PRIVATE src/behaviors/behavior_to_layer.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
|
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE app PRIVATE src/behaviors/behavior_sensor_rotate.c)
|
target_sources(app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR app PRIVATE src/behaviors/behavior_sensor_rotate_var.c)
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOUSE_KEY_PRESS app PRIVATE src/behaviors/behavior_mouse_key_press.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STUDIO_UNLOCK app PRIVATE src/behaviors/behavior_studio_unlock.c)
|
|
||||||
target_sources(app PRIVATE src/combo.c)
|
target_sources(app PRIVATE src/combo.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_tap_dance.c)
|
|
||||||
target_sources(app PRIVATE src/behavior_queue.c)
|
|
||||||
target_sources(app PRIVATE src/conditional_layer.c)
|
|
||||||
target_sources(app PRIVATE src/endpoints.c)
|
|
||||||
target_sources(app PRIVATE src/events/endpoint_changed.c)
|
|
||||||
target_sources(app PRIVATE src/hid_listener.c)
|
|
||||||
target_sources(app PRIVATE src/keymap.c)
|
target_sources(app PRIVATE src/keymap.c)
|
||||||
target_sources(app PRIVATE src/events/layer_state_changed.c)
|
|
||||||
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
|
||||||
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/hid_indicators.c)
|
|
||||||
|
|
||||||
if (CONFIG_ZMK_BLE)
|
|
||||||
target_sources(app PRIVATE src/events/ble_active_profile_changed.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_bt.c)
|
|
||||||
target_sources(app PRIVATE src/ble.c)
|
|
||||||
target_sources(app PRIVATE src/hog.c)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/behaviors/behavior_backlight.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/behaviors/behavior_bt.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/events/battery_state_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/battery.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/battery.c)
|
if (CONFIG_ZMK_SPLIT_BLE AND (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL))
|
||||||
|
target_sources(app PRIVATE src/split_listener.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/events/hid_indicators_changed.c)
|
target_sources(app PRIVATE src/split/bluetooth/service.c)
|
||||||
|
endif()
|
||||||
target_sources_ifdef(CONFIG_ZMK_SPLIT app PRIVATE src/events/split_peripheral_status_changed.c)
|
if (CONFIG_ZMK_SPLIT_BLE AND CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL)
|
||||||
add_subdirectory(src/split)
|
target_sources(app PRIVATE src/split/bluetooth/central.c)
|
||||||
|
endif()
|
||||||
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/usb.c)
|
target_sources_ifdef(CONFIG_USB app PRIVATE src/usb.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_USB app PRIVATE src/usb_hid.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/hog.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/backlight.c)
|
target_sources(app PRIVATE src/endpoints.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_LOW_PRIORITY_WORK_QUEUE app PRIVATE src/workqueue.c)
|
target_sources(app PRIVATE src/hid_listener.c)
|
||||||
target_sources(app PRIVATE src/main.c)
|
target_sources(app PRIVATE src/main.c)
|
||||||
|
|
||||||
add_subdirectory(src/display/)
|
add_subdirectory(src/display/)
|
||||||
add_subdirectory_ifdef(CONFIG_SETTINGS src/settings/)
|
|
||||||
|
|
||||||
if (CONFIG_ZMK_STUDIO_RPC)
|
|
||||||
# For some reason this is failing if run from a different sub-file.
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
|
|
||||||
|
|
||||||
include(nanopb)
|
|
||||||
|
|
||||||
# Turn off the default nanopb behavior
|
|
||||||
set(NANOPB_GENERATE_CPP_STANDALONE OFF)
|
|
||||||
|
|
||||||
nanopb_generate_cpp(proto_srcs proto_hdrs RELPATH ${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}
|
|
||||||
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/studio.proto
|
|
||||||
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/meta.proto
|
|
||||||
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/core.proto
|
|
||||||
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/behaviors.proto
|
|
||||||
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/keymap.proto
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(app PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
|
||||||
target_sources(app PRIVATE ${proto_srcs} ${proto_hdrs})
|
|
||||||
|
|
||||||
add_subdirectory(src/studio)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
zephyr_cc_option(-Wfatal-errors)
|
zephyr_cc_option(-Wfatal-errors)
|
||||||
|
|
771
app/Kconfig
771
app/Kconfig
|
@ -8,469 +8,281 @@ menu "ZMK"
|
||||||
menu "Basic Keyboard Setup"
|
menu "Basic Keyboard Setup"
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
string "Keyboard Name"
|
string "Keyboard Name"
|
||||||
|
|
||||||
config USB_DEVICE_PRODUCT
|
config USB_DEVICE_PRODUCT
|
||||||
default ZMK_KEYBOARD_NAME
|
default ZMK_KEYBOARD_NAME
|
||||||
|
|
||||||
config BT_DEVICE_NAME
|
config BT_DEVICE_NAME
|
||||||
default ZMK_KEYBOARD_NAME
|
default ZMK_KEYBOARD_NAME
|
||||||
|
|
||||||
config USB_DEVICE_VID
|
config USB_DEVICE_VID
|
||||||
default 0x1D50
|
default 0x1D50
|
||||||
|
|
||||||
config USB_DEVICE_PID
|
config USB_DEVICE_PID
|
||||||
default 0x615E
|
default 0x615E
|
||||||
|
|
||||||
config USB_DEVICE_MANUFACTURER
|
config USB_DEVICE_MANUFACTURER
|
||||||
default "ZMK Project"
|
default "ZMK Project"
|
||||||
|
|
||||||
config BT_DIS_PNP_VID
|
menu "HID Output Types"
|
||||||
default 0x1D50
|
|
||||||
|
|
||||||
config BT_DIS_PNP_PID
|
|
||||||
default 0x615E
|
|
||||||
|
|
||||||
config BT_DIS_MODEL
|
|
||||||
default ZMK_KEYBOARD_NAME
|
|
||||||
|
|
||||||
config BT_DIS_MANUF
|
|
||||||
default "ZMK Project"
|
|
||||||
|
|
||||||
# Hardware specific overrides
|
|
||||||
|
|
||||||
if SOC_SERIES_NRF52X
|
|
||||||
|
|
||||||
# Default on for our usage until boards implement retained bootmode.
|
|
||||||
config NRF_STORE_REBOOT_TYPE_GPREGRET
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
menu "HID"
|
|
||||||
|
|
||||||
choice ZMK_HID_REPORT_TYPE
|
|
||||||
prompt "HID Report Type"
|
|
||||||
|
|
||||||
config ZMK_HID_REPORT_TYPE_HKRO
|
|
||||||
bool "#-Key Roll Over (HKRO) HID Report"
|
|
||||||
help
|
|
||||||
Enable # key roll over for HID report. This selection is "boot keyboard" compatible
|
|
||||||
but limits the total number of possible keys to report as held to #.
|
|
||||||
|
|
||||||
config ZMK_HID_REPORT_TYPE_NKRO
|
|
||||||
bool "Full N-Key Roll Over (NKRO) HID Report"
|
|
||||||
help
|
|
||||||
Enable full N-Key Roll Over for HID output. This selection will prevent the keyboard
|
|
||||||
from working with some BIOS/UEFI versions that only support "boot keyboard" support.
|
|
||||||
This option also prevents using some infrequently used higher range HID usages (notably F13-F24 and INTL1-9)
|
|
||||||
These usages can be re enabled with ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT.
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT
|
|
||||||
bool "Enable extended NKRO reporting"
|
|
||||||
depends on ZMK_HID_REPORT_TYPE_NKRO
|
|
||||||
help
|
|
||||||
Enables higher usage range for NKRO (F13-F24 and INTL1-9).
|
|
||||||
Please note this is not compatible with Android currently and you will get no input
|
|
||||||
|
|
||||||
|
|
||||||
if ZMK_HID_REPORT_TYPE_HKRO
|
|
||||||
|
|
||||||
config ZMK_HID_KEYBOARD_REPORT_SIZE
|
|
||||||
int "# Keyboard Keys Reportable"
|
|
||||||
default 6
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_HID_CONSUMER_REPORT_SIZE
|
|
||||||
int "# Consumer Keys Reportable"
|
|
||||||
default 6
|
|
||||||
|
|
||||||
|
|
||||||
choice ZMK_HID_CONSUMER_REPORT_USAGES
|
|
||||||
prompt "HID Report Type"
|
|
||||||
|
|
||||||
config ZMK_HID_CONSUMER_REPORT_USAGES_FULL
|
|
||||||
bool "Full Consumer HID Usage Support"
|
|
||||||
help
|
|
||||||
Enable full Consumer usage ID values to be sent to hosts. Allows for less
|
|
||||||
frequently used usages, but has compatibability issues with some host OSes.
|
|
||||||
|
|
||||||
config ZMK_HID_CONSUMER_REPORT_USAGES_BASIC
|
|
||||||
bool "Basic Consumer HID Usage Support"
|
|
||||||
help
|
|
||||||
Enable Consumer usage ID values up to "Playback Speed - Slow" to be sent to
|
|
||||||
hosts. Allows for broader compatibability with more host OSes.
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config ZMK_HID_INDICATORS
|
|
||||||
bool "HID Indicators"
|
|
||||||
help
|
|
||||||
Enable HID indicators, used for detecting state of Caps/Scroll/Num Lock,
|
|
||||||
Kata, and Compose.
|
|
||||||
|
|
||||||
config ZMK_HID_SEPARATE_MOD_RELEASE_REPORT
|
|
||||||
bool "Release Modifiers Separately"
|
|
||||||
help
|
|
||||||
Send a separate release event for the modifiers, to make sure the release
|
|
||||||
of the modifier doesn't get recognized before the actual key's release event.
|
|
||||||
|
|
||||||
menu "Output Types"
|
|
||||||
|
|
||||||
config ZMK_USB
|
config ZMK_USB
|
||||||
bool "USB"
|
bool "USB"
|
||||||
depends on (!ZMK_SPLIT || (ZMK_SPLIT && ZMK_SPLIT_ROLE_CENTRAL))
|
select USB
|
||||||
select USB
|
select USB_DEVICE_STACK
|
||||||
select USB_DEVICE_STACK
|
select USB_DEVICE_HID
|
||||||
select USB_DEVICE_HID
|
|
||||||
|
|
||||||
config ZMK_USB_BOOT
|
|
||||||
bool "USB Boot Protocol Support"
|
|
||||||
depends on ZMK_USB
|
|
||||||
select USB_HID_BOOT_PROTOCOL
|
|
||||||
select USB_DEVICE_SOF
|
|
||||||
|
|
||||||
if ZMK_USB
|
if ZMK_USB
|
||||||
|
|
||||||
config USB_NUMOF_EP_WRITE_RETRIES
|
config USB_NUMOF_EP_WRITE_RETRIES
|
||||||
default 10
|
default 10
|
||||||
|
|
||||||
config USB_HID_POLL_INTERVAL_MS
|
|
||||||
default 1
|
|
||||||
|
|
||||||
#ZMK_USB
|
#ZMK_USB
|
||||||
endif
|
endif
|
||||||
|
|
||||||
menuconfig ZMK_BLE
|
menuconfig ZMK_BLE
|
||||||
bool "BLE (HID over GATT)"
|
bool "BLE (HID over GATT)"
|
||||||
select BT
|
select BT
|
||||||
select BT_SMP
|
select BT_SMP
|
||||||
select BT_SMP_SC_PAIR_ONLY
|
select BT_SMP_SC_PAIR_ONLY
|
||||||
select BT_SMP_APP_PAIRING_ACCEPT
|
select BT_SMP_APP_PAIRING_ACCEPT
|
||||||
select BT_PERIPHERAL
|
select BT_PERIPHERAL
|
||||||
select BT_DIS
|
select BT_DIS
|
||||||
imply BT_SETTINGS if !ARCH_POSIX
|
select BT_BAS
|
||||||
imply SETTINGS if !ARCH_POSIX
|
select BT_SETTINGS
|
||||||
imply ZMK_BATTERY_REPORTING if !ARCH_POSIX
|
select SETTINGS
|
||||||
|
|
||||||
if ZMK_BLE
|
if ZMK_BLE
|
||||||
|
|
||||||
config ZMK_BLE_EXPERIMENTAL_CONN
|
|
||||||
bool "Experimental BLE connection changes"
|
|
||||||
help
|
|
||||||
Enables a combination of settings that are planned to be default in future versions of ZMK
|
|
||||||
to improve connection stability. This includes changes to timing on BLE pairing initiation,
|
|
||||||
restores use of the updated/new LLCP implementation, and disables 2M PHY support.
|
|
||||||
|
|
||||||
config ZMK_BLE_EXPERIMENTAL_SEC
|
|
||||||
bool "Experimental BLE security changes"
|
|
||||||
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
|
||||||
help
|
|
||||||
Enables a combination of settings that are planned to be officially supported in the future.
|
|
||||||
This includes enabling BT Secure Connection passkey entry, and allows overwrite of keys from
|
|
||||||
previously paired hosts.
|
|
||||||
|
|
||||||
config ZMK_BLE_EXPERIMENTAL_FEATURES
|
|
||||||
bool "Experimental BLE connection and security settings/features"
|
|
||||||
select ZMK_BLE_EXPERIMENTAL_CONN
|
|
||||||
select ZMK_BLE_EXPERIMENTAL_SEC
|
|
||||||
help
|
|
||||||
Enables experimental connection changes and security features.
|
|
||||||
|
|
||||||
config ZMK_BLE_PASSKEY_ENTRY
|
|
||||||
bool "Require passkey entry on the keyboard to complete pairing"
|
|
||||||
select RING_BUFFER
|
|
||||||
|
|
||||||
config BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
|
||||||
imply ZMK_BLE_PASSKEY_ENTRY
|
|
||||||
|
|
||||||
config BT_CTLR_PHY_2M
|
|
||||||
default n if ZMK_BLE_EXPERIMENTAL_CONN
|
|
||||||
|
|
||||||
# BT_TINYCRYPT_ECC is required for BT_SMP_SC_PAIR_ONLY when using HCI
|
|
||||||
config BT_TINYCRYPT_ECC
|
|
||||||
default y if BT_HCI && !BT_CTLR
|
|
||||||
|
|
||||||
config SYSTEM_WORKQUEUE_STACK_SIZE
|
config SYSTEM_WORKQUEUE_STACK_SIZE
|
||||||
default 4096 if SOC_RP2040
|
default 2048
|
||||||
default 2048
|
|
||||||
|
|
||||||
config ZMK_BLE_THREAD_STACK_SIZE
|
config ZMK_BLE_THREAD_STACK_SIZE
|
||||||
int "BLE notify thread stack size"
|
int "BLE notify thread stack size"
|
||||||
default 768
|
default 512
|
||||||
|
|
||||||
config ZMK_BLE_THREAD_PRIORITY
|
config ZMK_BLE_THREAD_PRIORITY
|
||||||
int "BLE notify thread priority"
|
int "BLE notify thread priority"
|
||||||
default 5
|
default 5
|
||||||
|
|
||||||
config ZMK_BLE_KEYBOARD_REPORT_QUEUE_SIZE
|
config ZMK_BLE_KEYBOARD_REPORT_QUEUE_SIZE
|
||||||
int "Max number of keyboard HID reports to queue for sending over BLE"
|
int "Max number of keyboard HID reports to queue for sending over BLE"
|
||||||
default 20
|
default 20
|
||||||
|
|
||||||
config ZMK_BLE_CONSUMER_REPORT_QUEUE_SIZE
|
config ZMK_BLE_CONSUMER_REPORT_QUEUE_SIZE
|
||||||
int "Max number of consumer HID reports to queue for sending over BLE"
|
int "Max number of consumer HID reports to queue for sending over BLE"
|
||||||
default 5
|
default 5
|
||||||
|
|
||||||
config ZMK_BLE_MOUSE_REPORT_QUEUE_SIZE
|
|
||||||
int "Max number of mouse HID reports to queue for sending over BLE"
|
|
||||||
default 20
|
|
||||||
|
|
||||||
config ZMK_BLE_CLEAR_BONDS_ON_START
|
config ZMK_BLE_CLEAR_BONDS_ON_START
|
||||||
bool "Configuration that clears all bond information from the keyboard on startup."
|
bool "Configuration that clears all bond information from the keyboard on startup."
|
||||||
|
default n
|
||||||
|
|
||||||
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
||||||
config BT_GATT_NOTIFY_MULTIPLE
|
config BT_GATT_NOTIFY_MULTIPLE
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config BT_GATT_AUTO_SEC_REQ
|
|
||||||
default (ZMK_SPLIT_BLE && !ZMK_SPLIT_ROLE_CENTRAL)
|
|
||||||
|
|
||||||
config BT_DEVICE_APPEARANCE
|
config BT_DEVICE_APPEARANCE
|
||||||
default 961
|
default 961
|
||||||
|
|
||||||
config BT_PERIPHERAL_PREF_MIN_INT
|
config ZMK_BLE_PASSKEY_ENTRY
|
||||||
default 6
|
bool "Experimental: Requiring typing passkey from host to pair BLE connection"
|
||||||
|
default n
|
||||||
config BT_PERIPHERAL_PREF_MAX_INT
|
|
||||||
default 12
|
|
||||||
|
|
||||||
config BT_PERIPHERAL_PREF_LATENCY
|
|
||||||
default 30
|
|
||||||
|
|
||||||
config BT_PERIPHERAL_PREF_TIMEOUT
|
|
||||||
default 400
|
|
||||||
|
|
||||||
#ZMK_BLE
|
#ZMK_BLE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#Output Types
|
#HID Output Types
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
# HID
|
menu "Split Support"
|
||||||
endmenu
|
|
||||||
|
|
||||||
rsource "src/split/Kconfig"
|
config ZMK_SPLIT
|
||||||
|
bool "Split keyboard support"
|
||||||
|
|
||||||
#Basic Keyboard Setup
|
if ZMK_SPLIT
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Keymaps"
|
menuconfig ZMK_SPLIT_BLE
|
||||||
|
bool "Split keyboard support via BLE transport"
|
||||||
|
depends on ZMK_BLE
|
||||||
|
default y
|
||||||
|
select BT_USER_PHY_UPDATE
|
||||||
|
|
||||||
config ZMK_KEYMAP_LAYER_REORDERING
|
if ZMK_SPLIT_BLE
|
||||||
bool "Layer Reordering Support"
|
|
||||||
|
|
||||||
config ZMK_KEYMAP_SETTINGS_STORAGE
|
menuconfig ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
bool "Settings Save/Load"
|
bool "Central"
|
||||||
depends on SETTINGS
|
select BT_CENTRAL
|
||||||
depends on ZMK_BEHAVIOR_LOCAL_IDS
|
select BT_GATT_CLIENT
|
||||||
|
|
||||||
if ZMK_KEYMAP_SETTINGS_STORAGE
|
if ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
config ZMK_KEYMAP_LAYER_NAME_MAX_LEN
|
config ZMK_SPLIT_BLE_CENTRAL_POSITION_QUEUE_SIZE
|
||||||
int "Max Layer Name Length"
|
int "Max number of key position state events to queue when received from peripherals"
|
||||||
default 20
|
default 5
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endmenu # Keymaps
|
if !ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
rsource "src/studio/Kconfig"
|
config ZMK_SPLIT_BLE_PERIPHERAL_STACK_SIZE
|
||||||
|
int "BLE split peripheral notify thread stack size"
|
||||||
|
default 512
|
||||||
|
|
||||||
|
config ZMK_SPLIT_BLE_PERIPHERAL_PRIORITY
|
||||||
|
int "BLE split peripheral notify thread priority"
|
||||||
|
default 5
|
||||||
|
|
||||||
|
config ZMK_SPLIT_BLE_PERIPHERAL_POSITION_QUEUE_SIZE
|
||||||
|
int "Max number of key position state events to queue to send to the central"
|
||||||
|
default 10
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default n
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 1
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 1
|
||||||
|
|
||||||
|
config BT_GAP_AUTO_UPDATE_CONN_PARAMS
|
||||||
|
default n
|
||||||
|
|
||||||
|
#!ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_SPLIT
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ZMK_BLE
|
||||||
|
|
||||||
|
if ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 6
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 6
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !ZMK_SPLIT_BLE
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 5
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 5
|
||||||
|
|
||||||
|
#!ZMK_SPLIT_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#Split Support
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
#Basic Keyboard Setup
|
||||||
|
endmenu
|
||||||
|
|
||||||
menu "Display/LED Options"
|
menu "Display/LED Options"
|
||||||
|
|
||||||
rsource "src/display/Kconfig"
|
rsource "src/display/Kconfig"
|
||||||
|
|
||||||
menuconfig ZMK_RGB_UNDERGLOW
|
config ZMK_RGB_UNDERGLOW
|
||||||
bool "RGB Addressable LED Underglow"
|
bool "RGB Adressable LED Underglow"
|
||||||
select LED_STRIP
|
select LED_STRIP
|
||||||
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
|
||||||
|
|
||||||
if ZMK_RGB_UNDERGLOW
|
if ZMK_RGB_UNDERGLOW
|
||||||
|
|
||||||
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
|
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
|
||||||
config SPI
|
config SPI
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_EXT_POWER
|
config ZMK_RGB_UNDERGLOW_EXT_POWER
|
||||||
bool "RGB underglow toggling also controls external power"
|
bool "RGB underglow toggling also controls external power"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_MIN
|
|
||||||
int "RGB underglow minimum brightness in percent"
|
|
||||||
range 0 100
|
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_MAX
|
|
||||||
int "RGB underglow maximum brightness in percent"
|
|
||||||
range ZMK_RGB_UNDERGLOW_BRT_MIN 100
|
|
||||||
default 100
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
||||||
int "RGB underglow hue step in degrees"
|
int "RGB underglow hue step in degrees of 360"
|
||||||
range 0 359
|
default 10
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
||||||
int "RGB underglow saturation step in percent"
|
int "RGB underglow sturation step in percent"
|
||||||
range 0 100
|
default 10
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
||||||
int "RGB underglow brightness step in percent"
|
int "RGB underglow brightness step in percent"
|
||||||
range 0 100
|
default 10
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_HUE_START
|
config ZMK_RGB_UNDERGLOW_HUE_START
|
||||||
int "RGB underglow start hue value in degrees"
|
int "RGB underglow start hue value from 0-359"
|
||||||
range 0 359
|
default 0
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SAT_START
|
config ZMK_RGB_UNDERGLOW_SAT_START
|
||||||
int "RGB underglow start saturations value in percent"
|
int "RGB underglow start saturations value from 0-100"
|
||||||
range 0 100
|
default 100
|
||||||
default 100
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_START
|
config ZMK_RGB_UNDERGLOW_BRT_START
|
||||||
int "RGB underglow start brightness value in percent"
|
int "RGB underglow start brightness value from 0-100"
|
||||||
range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX
|
default 100
|
||||||
default ZMK_RGB_UNDERGLOW_BRT_MAX
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SPD_START
|
config ZMK_RGB_UNDERGLOW_SPD_START
|
||||||
int "RGB underglow start animation speed value"
|
int "RGB underglow start animation speed value from 1-5"
|
||||||
range 1 5
|
default 3
|
||||||
default 3
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_EFF_START
|
config ZMK_RGB_UNDERGLOW_EFF_START
|
||||||
int "RGB underglow start effect int value related to the effect enum list"
|
int "RGB underglow start effect int value related to the effect enum list"
|
||||||
range 0 3
|
default 0
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_ON_START
|
config ZMK_RGB_UNDERGLOW_ON_START
|
||||||
bool "RGB underglow starts on by default"
|
bool "RGB underglow starts on by default"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE
|
|
||||||
bool "Turn off RGB underglow when keyboard goes into idle state"
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_AUTO_OFF_USB
|
|
||||||
bool "Turn off RGB underglow when USB is disconnected"
|
|
||||||
depends on USB_DEVICE_STACK
|
|
||||||
|
|
||||||
#ZMK_RGB_UNDERGLOW
|
#ZMK_RGB_UNDERGLOW
|
||||||
endif
|
endif
|
||||||
|
|
||||||
menuconfig ZMK_BACKLIGHT
|
|
||||||
bool "LED backlight"
|
|
||||||
select LED
|
|
||||||
|
|
||||||
if ZMK_BACKLIGHT
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_BRT_STEP
|
|
||||||
int "Brightness step in percent"
|
|
||||||
range 1 100
|
|
||||||
default 20
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_BRT_START
|
|
||||||
int "Default brightness in percent"
|
|
||||||
range 1 100
|
|
||||||
default 40
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_ON_START
|
|
||||||
bool "Default backlight state"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
|
||||||
bool "Turn off backlight when keyboard goes into idle state"
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_AUTO_OFF_USB
|
|
||||||
bool "Turn off backlight when USB is disconnected"
|
|
||||||
|
|
||||||
#ZMK_BACKLIGHT
|
|
||||||
endif
|
|
||||||
|
|
||||||
#Display/LED Options
|
#Display/LED Options
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Mouse Options"
|
|
||||||
|
|
||||||
config ZMK_MOUSE
|
|
||||||
bool "Enable ZMK mouse emulation"
|
|
||||||
|
|
||||||
#Mouse Options
|
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Power Management"
|
menu "Power Management"
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORTING
|
|
||||||
bool "Battery level detection/reporting"
|
|
||||||
select SENSOR
|
|
||||||
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
|
||||||
imply BT_BAS if ZMK_BLE
|
|
||||||
|
|
||||||
if ZMK_BATTERY_REPORTING
|
|
||||||
|
|
||||||
choice ZMK_BATTERY_REPORTING_FETCH_MODE
|
|
||||||
prompt "Battery Reporting Fetch Mode"
|
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORTING_FETCH_MODE_STATE_OF_CHARGE
|
|
||||||
bool "State of charge"
|
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE
|
|
||||||
bool "Lithium Voltage"
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_IDLE_TIMEOUT
|
config ZMK_IDLE_TIMEOUT
|
||||||
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
|
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
|
||||||
default 30000
|
default 30000
|
||||||
|
|
||||||
config ZMK_SLEEP
|
config ZMK_SLEEP
|
||||||
bool "Enable deep sleep support"
|
bool "Enable deep sleep support"
|
||||||
depends on HAS_POWEROFF
|
imply USB
|
||||||
select POWEROFF
|
|
||||||
select ZMK_PM_DEVICE_SUSPEND_RESUME
|
|
||||||
imply USB
|
|
||||||
|
|
||||||
if ZMK_SLEEP
|
if ZMK_SLEEP
|
||||||
|
|
||||||
config PM_DEVICE
|
config SYS_POWER_DEEP_SLEEP_STATES
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
choice SYS_PM_POLICY
|
||||||
|
default SYS_PM_POLICY_APP
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config DEVICE_POWER_MANAGEMENT
|
||||||
|
default y
|
||||||
|
|
||||||
config ZMK_IDLE_SLEEP_TIMEOUT
|
config ZMK_IDLE_SLEEP_TIMEOUT
|
||||||
int "Milliseconds of inactivity before entering deep sleep"
|
int "Milliseconds of inactivity before entering deep sleep"
|
||||||
default 900000
|
default 900000
|
||||||
|
|
||||||
#ZMK_SLEEP
|
#ZMK_SLEEP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
config ZMK_EXT_POWER
|
config ZMK_EXT_POWER
|
||||||
bool "Enable support to control external power output"
|
bool "Enable support to control external power output"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_PM
|
|
||||||
bool
|
|
||||||
|
|
||||||
config ZMK_PM_DEVICE_SUSPEND_RESUME
|
|
||||||
bool
|
|
||||||
select ZMK_PM
|
|
||||||
|
|
||||||
config ZMK_PM_SOFT_OFF
|
|
||||||
bool "Soft-off support"
|
|
||||||
depends on HAS_POWEROFF
|
|
||||||
select ZMK_PM
|
|
||||||
select PM_DEVICE
|
|
||||||
select ZMK_PM_DEVICE_SUSPEND_RESUME
|
|
||||||
select POWEROFF
|
|
||||||
|
|
||||||
config ZMK_GPIO_KEY_WAKEUP_TRIGGER
|
|
||||||
bool "Hardware supported wakeup (GPIO)"
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF
|
|
||||||
|
|
||||||
#Power Management
|
#Power Management
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -478,51 +290,29 @@ endmenu
|
||||||
menu "Combo options"
|
menu "Combo options"
|
||||||
|
|
||||||
config ZMK_COMBO_MAX_PRESSED_COMBOS
|
config ZMK_COMBO_MAX_PRESSED_COMBOS
|
||||||
int "Maximum number of currently pressed combos"
|
int "Maximum number of currently pressed combos"
|
||||||
default 4
|
default 4
|
||||||
|
|
||||||
config ZMK_COMBO_MAX_COMBOS_PER_KEY
|
config ZMK_COMBO_MAX_COMBOS_PER_KEY
|
||||||
int "Maximum number of combos per key"
|
int "Maximum number of combos per key"
|
||||||
default 5
|
default 5
|
||||||
|
|
||||||
config ZMK_COMBO_MAX_KEYS_PER_COMBO
|
config ZMK_COMBO_MAX_KEYS_PER_COMBO
|
||||||
int "Maximum number of keys per combo"
|
int "Maximum number of keys per combo"
|
||||||
default 4
|
default 4
|
||||||
|
|
||||||
#Combo options
|
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Behavior Options"
|
|
||||||
|
|
||||||
config ZMK_BEHAVIORS_QUEUE_SIZE
|
|
||||||
int "Maximum number of behaviors to allow queueing from a macro or other complex behavior"
|
|
||||||
default 64
|
|
||||||
|
|
||||||
rsource "Kconfig.behaviors"
|
|
||||||
|
|
||||||
config ZMK_MACRO_DEFAULT_WAIT_MS
|
|
||||||
int "Default time to wait (in milliseconds) before triggering the next behavior in macros"
|
|
||||||
default 15
|
|
||||||
|
|
||||||
config ZMK_MACRO_DEFAULT_TAP_MS
|
|
||||||
int "Default time to wait (in milliseconds) between the press and release events of a tapped behavior in macros"
|
|
||||||
default 30
|
|
||||||
|
|
||||||
|
#Display/LED Options
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Advanced"
|
menu "Advanced"
|
||||||
|
|
||||||
menu "Initialization Priorities"
|
menu "Initialization Priorities"
|
||||||
|
|
||||||
if USB_DEVICE_STACK
|
if USB
|
||||||
|
|
||||||
config ZMK_USB_INIT_PRIORITY
|
config ZMK_USB_INIT_PRIORITY
|
||||||
int "USB Init Priority"
|
int "USB Init Priority"
|
||||||
default 94
|
default 50
|
||||||
|
|
||||||
config ZMK_USB_HID_INIT_PRIORITY
|
|
||||||
int "USB HID Init Priority"
|
|
||||||
default 95
|
|
||||||
|
|
||||||
#USB
|
#USB
|
||||||
endif
|
endif
|
||||||
|
@ -530,8 +320,8 @@ endif
|
||||||
if ZMK_BLE || ZMK_SPLIT_BLE
|
if ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
|
|
||||||
config ZMK_BLE_INIT_PRIORITY
|
config ZMK_BLE_INIT_PRIORITY
|
||||||
int "BLE Init Priority"
|
int "BLE Init Priority"
|
||||||
default 50
|
default 50
|
||||||
|
|
||||||
#ZMK_BLE || ZMK_SPLIT_BLE
|
#ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
endif
|
endif
|
||||||
|
@ -539,201 +329,97 @@ endif
|
||||||
#Initialization Priorities
|
#Initialization Priorities
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menuconfig ZMK_KSCAN
|
menu "KSCAN Settings"
|
||||||
bool "ZMK KScan Integration"
|
|
||||||
default y
|
|
||||||
select KSCAN
|
|
||||||
|
|
||||||
if ZMK_KSCAN
|
|
||||||
|
|
||||||
config ZMK_KSCAN_EVENT_QUEUE_SIZE
|
config ZMK_KSCAN_EVENT_QUEUE_SIZE
|
||||||
int "Size of the event queue for KSCAN events to buffer events"
|
int "Size of the event queue for KSCAN events to buffer events"
|
||||||
default 4
|
default 4
|
||||||
|
|
||||||
endif # ZMK_KSCAN
|
config ZMK_KSCAN_MOCK_DRIVER
|
||||||
|
bool "Enable mock kscan driver to simulate key presses"
|
||||||
|
default n
|
||||||
|
|
||||||
config ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
config ZMK_KSCAN_COMPOSITE_DRIVER
|
||||||
bool
|
bool "Enable composite kscan driver to combine kscan devices"
|
||||||
default y
|
default n
|
||||||
depends on DT_HAS_ZMK_KSCAN_SIDEBAND_BEHAVIORS_ENABLED
|
|
||||||
select KSCAN
|
|
||||||
|
|
||||||
if ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
#KSCAN Settings
|
||||||
|
endmenu
|
||||||
|
|
||||||
config ZMK_KSCAN_SIDEBAND_BEHAVIORS_INIT_PRIORITY
|
menu "USB Logging"
|
||||||
int "Keyboard scan sideband behaviors driver init priority"
|
|
||||||
# The default kscan init priority is 90, so be sure we are initialized later.
|
|
||||||
default 95
|
|
||||||
|
|
||||||
endif # ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
|
||||||
|
|
||||||
menu "Logging"
|
|
||||||
|
|
||||||
config ZMK_LOGGING_MINIMAL
|
|
||||||
bool "Suppress all ZMK debug log messages"
|
|
||||||
default false
|
|
||||||
|
|
||||||
if !ZMK_LOGGING_MINIMAL
|
|
||||||
|
|
||||||
config ZMK_LOG_LEVEL
|
|
||||||
default 4
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_USB_LOGGING
|
config ZMK_USB_LOGGING
|
||||||
bool "Enable USB CDC ACM logging to help debug"
|
bool "Enable USB CDC ACM logging to help debug"
|
||||||
select LOG
|
select LOG
|
||||||
select USB
|
select USB
|
||||||
select USB_DEVICE_STACK
|
select USB_DEVICE_STACK
|
||||||
select USB_CDC_ACM
|
select USB_CDC_ACM
|
||||||
select SERIAL
|
select SERIAL
|
||||||
select CONSOLE
|
select CONSOLE
|
||||||
select UART_INTERRUPT_DRIVEN
|
select UART_INTERRUPT_DRIVEN
|
||||||
select UART_LINE_CTRL
|
select UART_LINE_CTRL
|
||||||
select UART_CONSOLE
|
select UART_CONSOLE
|
||||||
select USB_UART_CONSOLE
|
select USB_UART_CONSOLE
|
||||||
|
|
||||||
if ZMK_USB_LOGGING
|
if ZMK_USB_LOGGING
|
||||||
|
|
||||||
choice USB_CDC_ACM_LOG_LEVEL_CHOICE
|
config ZMK_LOG_LEVEL
|
||||||
default USB_CDC_ACM_LOG_LEVEL_OFF
|
default 4
|
||||||
endchoice
|
|
||||||
|
|
||||||
choice USB_DRIVER_LOG_LEVEL_CHOICE
|
|
||||||
default USB_DRIVER_LOG_LEVEL_OFF
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
# We do this to avoid log loop where logging to USB generates more log messages.
|
|
||||||
|
|
||||||
config USB_CDC_ACM_RINGBUF_SIZE
|
config USB_CDC_ACM_RINGBUF_SIZE
|
||||||
default 1024
|
default 1024
|
||||||
|
|
||||||
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
|
config USB_CDC_ACM_DEVICE_NAME
|
||||||
default 1000
|
default "CDC_ACM"
|
||||||
|
|
||||||
|
config USB_CDC_ACM_DEVICE_COUNT
|
||||||
|
default 1
|
||||||
|
|
||||||
|
config UART_CONSOLE_ON_DEV_NAME
|
||||||
|
default "CDC_ACM_0"
|
||||||
|
|
||||||
|
config LOG_BUFFER_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
|
config LOG_STRDUP_BUF_COUNT
|
||||||
|
default 16
|
||||||
|
|
||||||
#ZMK_USB_LOGGING
|
#ZMK_USB_LOGGING
|
||||||
endif
|
endif
|
||||||
|
|
||||||
config ZMK_RTT_LOGGING
|
#USB Logging
|
||||||
bool "Enable RTT logging to help debug"
|
|
||||||
select LOG
|
|
||||||
select DEBUG
|
|
||||||
select ASSERT
|
|
||||||
select USE_SEGGER_RTT
|
|
||||||
select CONSOLE
|
|
||||||
select RTT_CONSOLE
|
|
||||||
|
|
||||||
if ZMK_RTT_LOGGING
|
|
||||||
|
|
||||||
config SEGGER_RTT_BUFFER_SIZE_UP
|
|
||||||
default 8192
|
|
||||||
|
|
||||||
#ZMK_RTT_LOGGING
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
|
||||||
|
|
||||||
config LOG_BUFFER_SIZE
|
|
||||||
default 8192
|
|
||||||
|
|
||||||
config LOG_PROCESS_THREAD_SLEEP_MS
|
|
||||||
default 100
|
|
||||||
|
|
||||||
#ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
|
||||||
endif
|
|
||||||
|
|
||||||
#Logging
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
if SETTINGS
|
if SETTINGS
|
||||||
|
|
||||||
config ZMK_SETTINGS_RESET_ON_START
|
|
||||||
bool "Delete all persistent settings when the keyboard boots"
|
|
||||||
|
|
||||||
if ZMK_SETTINGS_RESET_ON_START
|
|
||||||
|
|
||||||
config ZMK_SETTINGS_RESET_ON_START_INIT_PRIORITY
|
|
||||||
int "Settings Reset ON Start Initialization Priority"
|
|
||||||
default 60
|
|
||||||
help
|
|
||||||
Initialization priority for the settings reset on start. Must be lower priority/
|
|
||||||
higher value than FLASH_INIT_PRIORITY if using the NVS/Flash settings backend.
|
|
||||||
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
||||||
int "Milliseconds to debounce settings saves"
|
int "Milliseconds to debounce settings saves"
|
||||||
default 60000
|
default 60000
|
||||||
|
|
||||||
#SETTINGS
|
#SETTINGS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORT_INTERVAL
|
|
||||||
depends on ZMK_BATTERY_REPORTING
|
|
||||||
int "Battery level report interval in seconds"
|
|
||||||
default 60
|
|
||||||
|
|
||||||
config ZMK_LOW_PRIORITY_WORK_QUEUE
|
|
||||||
bool "Work queue for low priority items"
|
|
||||||
|
|
||||||
if ZMK_LOW_PRIORITY_WORK_QUEUE
|
|
||||||
|
|
||||||
config ZMK_LOW_PRIORITY_THREAD_STACK_SIZE
|
|
||||||
int "Low priority thread stack size"
|
|
||||||
default 768
|
|
||||||
|
|
||||||
config ZMK_LOW_PRIORITY_THREAD_PRIORITY
|
|
||||||
int "Low priority thread priority"
|
|
||||||
default 10
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#Advanced
|
#Advanced
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
#ZMK
|
#ZMK
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
config HEAP_MEM_POOL_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
config KERNEL_BIN_NAME
|
config KERNEL_BIN_NAME
|
||||||
default "zmk"
|
default "zmk"
|
||||||
|
|
||||||
config REBOOT
|
config REBOOT
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config USB_DEVICE_STACK
|
config USB
|
||||||
default y if HAS_HW_NRF_USBD
|
default y if HAS_HW_NRF_USBD
|
||||||
|
|
||||||
config FPU
|
|
||||||
default CPU_HAS_FPU
|
|
||||||
|
|
||||||
config ZMK_WPM
|
config ZMK_WPM
|
||||||
bool "Calculate WPM"
|
bool "Calculate WPM"
|
||||||
|
default n
|
||||||
config ZMK_KEYMAP_SENSORS
|
|
||||||
bool "Enable Keymap Sensors support"
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_KEYMAP_SENSORS_ENABLED
|
|
||||||
select SENSOR
|
|
||||||
|
|
||||||
if ZMK_KEYMAP_SENSORS
|
|
||||||
|
|
||||||
config ZMK_KEYMAP_SENSORS_DEFAULT_TRIGGERS_PER_ROTATION
|
|
||||||
int "Default triggers per rotation"
|
|
||||||
help
|
|
||||||
Unless overridden for a sensor in the board/shield/devicetree, this value
|
|
||||||
determines how many times to trigger the bound behavior per full rotation.
|
|
||||||
For tactile encoders with detents, this usually should match the number of
|
|
||||||
detents per rotation of the encoder.
|
|
||||||
default 20
|
|
||||||
|
|
||||||
endif # ZMK_KEYMAP_SENSORS
|
|
||||||
|
|
||||||
choice CBPRINTF_IMPLEMENTATION
|
|
||||||
default CBPRINTF_NANO
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
module = ZMK
|
module = ZMK
|
||||||
module-str = zmk
|
module-str = zmk
|
||||||
|
@ -748,3 +434,4 @@ osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield"
|
||||||
|
|
||||||
|
|
||||||
source "Kconfig.zephyr"
|
source "Kconfig.zephyr"
|
||||||
|
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_METADATA
|
|
||||||
bool "Metadata"
|
|
||||||
help
|
|
||||||
Enabling this option adds APIs for documenting and fetching
|
|
||||||
metadata describing a behaviors name, and supported parameters.
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_LOCAL_IDS
|
|
||||||
bool "Local IDs"
|
|
||||||
|
|
||||||
if ZMK_BEHAVIOR_LOCAL_IDS
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_LOCAL_IDS_IN_BINDINGS
|
|
||||||
bool "Track in behavior bindings"
|
|
||||||
|
|
||||||
choice ZMK_BEHAVIOR_LOCAL_ID_TYPE
|
|
||||||
prompt "Local ID Type"
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_SETTINGS_TABLE
|
|
||||||
bool "Settings Table"
|
|
||||||
depends on SETTINGS
|
|
||||||
select ZMK_BEHAVIOR_LOCAL_IDS_IN_BINDINGS
|
|
||||||
help
|
|
||||||
Use persistent entries in the settings subsystem to identify
|
|
||||||
behaviors by local ID, which uses the device name to generate
|
|
||||||
a new settings entry tying a presistant local ID to that name.
|
|
||||||
This guarantees stable, colllision-free local IDs at the expense
|
|
||||||
of settings storage used.
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_CRC16
|
|
||||||
bool "CRC16 Hash"
|
|
||||||
select CRC
|
|
||||||
help
|
|
||||||
Use the CRC16-ANSI hash of behavior device names to generate
|
|
||||||
stable behavior local IDs. This saves on settings storage at
|
|
||||||
the expense of (highly unlikely) risk of collisions.
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_HOLD_TAP
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_HOLD_TAP_ENABLED
|
|
||||||
|
|
||||||
if ZMK_BEHAVIOR_HOLD_TAP
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD
|
|
||||||
int "Hold Tap Max Held"
|
|
||||||
default 10
|
|
||||||
help
|
|
||||||
Max number of simultaneously held hold-taps
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS
|
|
||||||
int "Hold Tap Max Captured Events"
|
|
||||||
default 40
|
|
||||||
help
|
|
||||||
Max number of captured system events while waiting to resolve hold taps
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_KEY_TOGGLE
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_KEY_TOGGLE_ENABLED
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED
|
|
||||||
imply ZMK_MOUSE
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_STICKY_KEY
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_STICKY_KEY_ENABLED
|
|
||||||
|
|
||||||
if ZMK_BEHAVIOR_STICKY_KEY
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD
|
|
||||||
int "Sticky Key Max Held"
|
|
||||||
default 10
|
|
||||||
help
|
|
||||||
Max number of simultaneously held sticky keys
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_SOFT_OFF
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_SOFT_OFF_ENABLED && ZMK_PM_SOFT_OFF
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
||||||
bool
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_SENSOR_ROTATE
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_ENABLED
|
|
||||||
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_SENSOR_ROTATE_VAR
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR_ENABLED
|
|
||||||
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_STUDIO_UNLOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_STUDIO_UNLOCK_ENABLED && ZMK_STUDIO
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_MACRO
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_MACRO_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_ONE_PARAM_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_TWO_PARAM_ENABLED
|
|
|
@ -1,6 +0,0 @@
|
||||||
CONFIG_ZMK_DISPLAY=y
|
|
||||||
CONFIG_LV_FONT_UNSCII_8=n
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_I2C=y
|
|
||||||
CONFIG_I2C_DW=y
|
|
||||||
CONFIG_LV_Z_VDB_SIZE=50
|
|
|
@ -1,7 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
&xiao_serial { status = "disabled"; };
|
|
|
@ -1,4 +0,0 @@
|
||||||
CONFIG_CONSOLE=n
|
|
||||||
CONFIG_SERIAL=n
|
|
||||||
CONFIG_UART_CONSOLE=n
|
|
||||||
CONFIG_ZMK_USB=y
|
|
|
@ -1,7 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
&pro_micro_serial { status = "disabled"; };
|
|
|
@ -1,4 +0,0 @@
|
||||||
CONFIG_CONSOLE=n
|
|
||||||
CONFIG_SERIAL=n
|
|
||||||
CONFIG_UART_CONSOLE=n
|
|
||||||
CONFIG_ZMK_USB=y
|
|
|
@ -1,7 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
&xiao_serial { status = "disabled"; };
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: adafruit_kb2040
|
|
||||||
name: Adafruit KB2040
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://www.adafruit.com/product/5302
|
|
||||||
exposes: [pro_micro]
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: adafruit_qt_py_rp2040
|
|
||||||
name: Adafruit QT Py RP2040
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://www.adafruit.com/product/4900
|
|
||||||
exposes: [seeed_xiao]
|
|
|
@ -1,7 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD_ENABLE_DCDC
|
|
||||||
bool "Enable DCDC mode"
|
|
||||||
select SOC_DCDC_NRF52X
|
|
||||||
default y
|
|
||||||
depends on BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
|
|
@ -1,12 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
config BOARD_ADV360PRO_LEFT
|
|
||||||
bool "adv360pro_left"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
||||||
|
|
||||||
config BOARD_ADV360PRO_RIGHT
|
|
||||||
bool "adv360pro_right"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
|
@ -1,55 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
if BOARD_ADV360PRO_LEFT
|
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
|
||||||
default "Adv360 Pro"
|
|
||||||
|
|
||||||
config ZMK_SPLIT_ROLE_CENTRAL
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif # BOARD_ADV360PRO_LEFT
|
|
||||||
|
|
||||||
if BOARD_ADV360PRO_RIGHT
|
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
|
||||||
default "Adv360 Pro rt"
|
|
||||||
|
|
||||||
endif # BOARD_ADV360PRO_RIGHT
|
|
||||||
|
|
||||||
|
|
||||||
if BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
|
||||||
|
|
||||||
config BOARD
|
|
||||||
default "adv360pro"
|
|
||||||
|
|
||||||
config ZMK_SPLIT
|
|
||||||
default y
|
|
||||||
|
|
||||||
config SPI
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config BT_CTLR
|
|
||||||
default BT
|
|
||||||
|
|
||||||
if USB
|
|
||||||
|
|
||||||
config USB_NRFX
|
|
||||||
default y
|
|
||||||
|
|
||||||
config USB_DEVICE_STACK
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif # USB
|
|
||||||
|
|
||||||
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
|
||||||
default y
|
|
||||||
|
|
||||||
config SPI
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif # BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
|
|
@ -1,7 +0,0 @@
|
||||||
# Kinesis Advantage 360 Professional
|
|
||||||
|
|
||||||
This board definition provides upstream support for the [Kinesis Advantage 360 Professional](https://kinesis-ergo.com/keyboards/advantage360/)
|
|
||||||
|
|
||||||
Kinesis offer a specific [custom configuration](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/) for the 360 Pro that references [a customised version of ZMK](https://github.com/ReFil/zmk/tree/adv360-z3.2-2) with Advantage 360 Pro specific functionality and changes over base ZMK. The Kinesis fork is regularly updated to bring the latest updates and changes from base ZMK however will not always be completely up to date, some features such as new keycodes will not be immediately available on the 360 Pro after they are implemented in base ZMK.
|
|
||||||
|
|
||||||
When using this board definition some of the more advanced features (the indicator RGB leds) will not work, and Kinesis cannot provide customer service for usage of base ZMK. Likewise the ZMK community cannot provide support for either the Kinesis keymap editor, nor any usage of the Kinesis custom fork.
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
spi3_default: spi3_default {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(SPIM_MOSI, 0, 20)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
spi3_sleep: spi3_sleep {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(SPIM_MOSI, 0, 20)>;
|
|
||||||
low-power-enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pwm0_default: pwm0_default {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(PWM_OUT0, 0, 17)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pwm0_sleep: pwm0_sleep {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(PWM_OUT0, 0, 17)>;
|
|
||||||
low-power-enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,155 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include <nordic/nrf52840_qiaa.dtsi>
|
|
||||||
|
|
||||||
#include <dt-bindings/led/led.h>
|
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
|
||||||
|
|
||||||
#include "adv360pro-pinctrl.dtsi"
|
|
||||||
|
|
||||||
/ {
|
|
||||||
model = "Adv360 Pro";
|
|
||||||
compatible = "kinesis,adv360pro";
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
zephyr,code-partition = &code_partition;
|
|
||||||
zephyr,sram = &sram0;
|
|
||||||
zephyr,flash = &flash0;
|
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,backlight = &backlight;
|
|
||||||
zmk,battery = &vbatt;
|
|
||||||
zmk,matrix-transform = &default_transform;
|
|
||||||
zmk,underglow = &led_strip;
|
|
||||||
};
|
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <20>;
|
|
||||||
rows = <5>;
|
|
||||||
|
|
||||||
|
|
||||||
map = <
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,13) RC(4,14) RC(4,15) RC(4,16) RC(4,17) RC(4,18) RC(4,19)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,13) RC(3,14) RC(3,15) RC(3,16) RC(3,17) RC(3,18) RC(3,19)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13) RC(2,14) RC(2,15) RC(2,16) RC(2,17) RC(2,18) RC(2,19)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,9) RC(1,10) RC(1,14) RC(1,15) RC(1,16) RC(1,17) RC(1,18) RC(1,19)
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,15) RC(0,16) RC(0,17) RC(0,18) RC(0,19)
|
|
||||||
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Node name must match original "EXT_POWER" label to preserve user settings.
|
|
||||||
EXT_POWER {
|
|
||||||
compatible = "zmk,ext-power-generic";
|
|
||||||
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
|
||||||
|
|
||||||
vbatt: vbatt {
|
|
||||||
compatible = "zmk,battery-voltage-divider";
|
|
||||||
io-channels = <&adc 2>;
|
|
||||||
output-ohms = <100000>;
|
|
||||||
full-ohms = <(100000 + 100000)>;
|
|
||||||
};
|
|
||||||
|
|
||||||
backlight: pwmleds {
|
|
||||||
compatible = "pwm-leds";
|
|
||||||
pwm_led_0 {
|
|
||||||
pwms = <&pwm0 0 10000 PWM_POLARITY_NORMAL>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm0 {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&pwm0_default>;
|
|
||||||
pinctrl-1 = <&pwm0_sleep>;
|
|
||||||
pinctrl-names = "default", "sleep";
|
|
||||||
};
|
|
||||||
|
|
||||||
&adc {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpiote {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
zephyr_udc0: &usbd {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&flash0 {
|
|
||||||
/*
|
|
||||||
* For more information, see:
|
|
||||||
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
|
||||||
*/
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
|
||||||
reg = <0x00000000 0x00026000>;
|
|
||||||
};
|
|
||||||
code_partition: partition@26000 {
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The flash starting at 0x000ec000 and ending at
|
|
||||||
* 0x000f3fff is reserved for use by the application.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Storage partition will be used by FCB/LittleFS/NVS
|
|
||||||
* if enabled.
|
|
||||||
*/
|
|
||||||
storage_partition: partition@ec000 {
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi3 {
|
|
||||||
compatible = "nordic,nrf-spim";
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&spi3_default>;
|
|
||||||
pinctrl-1 = <&spi3_sleep>;
|
|
||||||
pinctrl-names = "default", "sleep";
|
|
||||||
|
|
||||||
led_strip: ws2812@0 {
|
|
||||||
compatible = "worldsemi,ws2812-spi";
|
|
||||||
|
|
||||||
/* SPI */
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <4000000>;
|
|
||||||
|
|
||||||
/* WS2812 */
|
|
||||||
chain-length = <3>; /* number of LEDs */
|
|
||||||
spi-one-frame = <0x70>;
|
|
||||||
spi-zero-frame = <0x40>;
|
|
||||||
|
|
||||||
color-mapping = <LED_COLOR_ID_GREEN
|
|
||||||
LED_COLOR_ID_RED
|
|
||||||
LED_COLOR_ID_BLUE>;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,48 +0,0 @@
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <dt-bindings/zmk/bt.h>
|
|
||||||
#include <dt-bindings/zmk/rgb.h>
|
|
||||||
#include <dt-bindings/zmk/backlight.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
bindings = <
|
|
||||||
&kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &tog 1 &mo 3 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &none &none &kp Y &kp U &kp I &kp O &kp P &kp BSLH
|
|
||||||
&kp ESC &kp A &kp S &kp D &kp F &kp G &none &kp LCTRL &kp LALT &kp LGUI &kp RCTRL &none &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp HOME &kp PG_UP &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&mo 2 &kp GRAVE &kp CAPS &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp END &kp PG_DN &kp ENTER &kp SPACE &kp UP &kp DOWN &kp LBKT &kp RBKT &mo 2
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
keypad {
|
|
||||||
bindings = <
|
|
||||||
&kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &trans &mo 3 &kp N6 &kp KP_NUM &kp KP_EQUAL &kp KP_DIVIDE &kp KP_MULTIPLY &kp MINUS
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &none &none &kp Y &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp BSLH
|
|
||||||
&kp ESC &kp A &kp S &kp D &kp F &kp G &none &kp LCTRL &kp LALT &kp LGUI &kp RCTRL &none &kp H &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp SQT
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp HOME &kp PG_UP &kp N &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &kp RSHFT
|
|
||||||
&mo 2 &kp GRAVE &kp CAPS &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp END &kp PG_DN &kp ENTER &kp KP_N0 &kp UP &kp DOWN &kp KP_DOT &kp RBKT &mo 2
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
fn {
|
|
||||||
bindings = <
|
|
||||||
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &tog 1 &mo 3 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
|
|
||||||
&trans &trans &trans &trans &trans &trans &none &none &trans &trans &trans &trans &trans &trans
|
|
||||||
&trans &trans &trans &trans &trans &trans &none &trans &trans &trans &trans &none &trans &trans &trans &trans &trans &trans
|
|
||||||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
|
|
||||||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
mod {
|
|
||||||
bindings = <
|
|
||||||
&none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none &trans &none &none &none &none &none &none
|
|
||||||
&none &none &none &none &none &none &bootloader &bootloader &none &none &none &none &none &none
|
|
||||||
&none &none &none &none &none &none &none &none &none &bt BT_CLR &none &none &none &none &none &none &none &none
|
|
||||||
&none &none &none &none &none &none &none &none &none &none &none &none &none &none
|
|
||||||
&none &none &none &none &none &none &none &none &none &bl BL_TOG &rgb_ug RGB_TOG &bl BL_INC &bl BL_DEC &none &none &none
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,19 +0,0 @@
|
||||||
identifier: adv360pro
|
|
||||||
name: Advantage 360 Pro
|
|
||||||
type: keyboard
|
|
||||||
arch: arm
|
|
||||||
toolchain:
|
|
||||||
- zephyr
|
|
||||||
- gnuarmemb
|
|
||||||
- xtools
|
|
||||||
supported:
|
|
||||||
- gpio
|
|
||||||
- i2c
|
|
||||||
- counter
|
|
||||||
- spi
|
|
||||||
- usb_device
|
|
||||||
- nvs
|
|
||||||
- can
|
|
||||||
- kscan
|
|
||||||
- ble
|
|
||||||
- pwm
|
|
|
@ -1,16 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: adv360pro
|
|
||||||
name: Advantage 360 Pro
|
|
||||||
type: board
|
|
||||||
url: https://kinesis-ergo.com/keyboards/advantage360
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- underglow
|
|
||||||
- backlight
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
siblings:
|
|
||||||
- adv360pro_left
|
|
||||||
- adv360pro_right
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "adv360pro.dtsi"
|
|
||||||
|
|
||||||
/{
|
|
||||||
kscan0: kscan {
|
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
|
||||||
wakeup-source;
|
|
||||||
|
|
||||||
diode-direction = "col2row";
|
|
||||||
row-gpios
|
|
||||||
= <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio1 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio1 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio1 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
;
|
|
||||||
|
|
||||||
col-gpios
|
|
||||||
= <&gpio0 25 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 11 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 29 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 30 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 31 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 12 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,55 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_NRF52X=y
|
|
||||||
CONFIG_SOC_NRF52840_QIAA=y
|
|
||||||
CONFIG_BOARD_ADV360PRO_LEFT=y
|
|
||||||
|
|
||||||
# Enable MPU
|
|
||||||
CONFIG_ARM_MPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
|
||||||
CONFIG_GPIO=y
|
|
||||||
|
|
||||||
# Enable SPI for LEDS
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
CONFIG_SPI=y
|
|
||||||
CONFIG_SPI_NRFX=y
|
|
||||||
|
|
||||||
# Enable writing to flash
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
|
||||||
CONFIG_NVS=y
|
|
||||||
CONFIG_SETTINGS_NVS=y
|
|
||||||
CONFIG_FLASH=y
|
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
|
||||||
CONFIG_FLASH_MAP=y
|
|
||||||
|
|
||||||
# Enable 32kHz crystal
|
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM=y
|
|
||||||
|
|
||||||
#RGB leds config
|
|
||||||
CONFIG_WS2812_STRIP=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=0
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
|
|
||||||
|
|
||||||
#Backlighting configuration
|
|
||||||
CONFIG_PWM=y
|
|
||||||
CONFIG_LED_PWM=y
|
|
||||||
CONFIG_ZMK_BACKLIGHT=y
|
|
||||||
CONFIG_ZMK_BACKLIGHT_BRT_START=20
|
|
||||||
CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y
|
|
||||||
|
|
||||||
#Misc configuration
|
|
||||||
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
|
|
||||||
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
|
|
||||||
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
|
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2023 The ZMK Contributors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "adv360pro.dtsi"
|
|
||||||
|
|
||||||
/{
|
|
||||||
kscan0: kscan {
|
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
|
||||||
wakeup-source;
|
|
||||||
|
|
||||||
diode-direction = "col2row";
|
|
||||||
row-gpios
|
|
||||||
= <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 30 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
;
|
|
||||||
|
|
||||||
col-gpios
|
|
||||||
= <&gpio0 12 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 11 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 10 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 13 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 15 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 3 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&default_transform {
|
|
||||||
col-offset = <10>;
|
|
||||||
};
|
|
|
@ -1,54 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_NRF52X=y
|
|
||||||
CONFIG_SOC_NRF52840_QIAA=y
|
|
||||||
CONFIG_BOARD_ADV360PRO_RIGHT=y
|
|
||||||
|
|
||||||
# Enable MPU
|
|
||||||
CONFIG_ARM_MPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
|
||||||
CONFIG_GPIO=y
|
|
||||||
|
|
||||||
# Enable SPI for LEDS
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
CONFIG_SPI=y
|
|
||||||
CONFIG_SPI_NRFX=y
|
|
||||||
|
|
||||||
# Enable writing to flash
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
|
||||||
CONFIG_NVS=y
|
|
||||||
CONFIG_SETTINGS_NVS=y
|
|
||||||
CONFIG_FLASH=y
|
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
|
||||||
CONFIG_FLASH_MAP=y
|
|
||||||
|
|
||||||
# Enable 32kHz crystal
|
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM=y
|
|
||||||
|
|
||||||
#RGB leds config
|
|
||||||
CONFIG_WS2812_STRIP=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=0
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
|
|
||||||
|
|
||||||
#Backlighting configuration
|
|
||||||
CONFIG_PWM=y
|
|
||||||
CONFIG_LED_PWM=y
|
|
||||||
CONFIG_ZMK_BACKLIGHT=y
|
|
||||||
CONFIG_ZMK_BACKLIGHT_BRT_START=20
|
|
||||||
CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y
|
|
||||||
|
|
||||||
#Misc configuration
|
|
||||||
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
|
|
||||||
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
|
|
||||||
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
|
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2023 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
|
||||||
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2024 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
|
||||||
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
|
||||||
|
|
||||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
|
|
@ -4,5 +4,5 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
config BOARD_BDN9
|
config BOARD_BDN9
|
||||||
bool "BDN9 rev2"
|
bool "BDN9 rev2"
|
||||||
depends on SOC_STM32F072XB
|
depends on SOC_STM32F072XB
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
# keeb.io BDN9 board configuration
|
# keeb.io BDN9 board configuration
|
||||||
|
|
||||||
# Copyright (c) 2020 The ZMK Contributors
|
# Copyright (c) 2020 Pete Johanson
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
if BOARD_BDN9
|
if BOARD_BDN9
|
||||||
|
|
||||||
config BOARD
|
config BOARD
|
||||||
default "bdn9_rev2"
|
default "bdn9_rev2"
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
default "BDN9 Rev2"
|
default "BDN9 Rev2"
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW
|
config ZMK_USB
|
||||||
select SPI
|
default y
|
||||||
select WS2812_STRIP
|
|
||||||
|
|
||||||
endif # BOARD_BDN9
|
endif # BOARD_BDN9
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
# Copyright (c) 2022 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
# Uncomment these lines below to enable encoders.
|
|
||||||
# CONFIG_EC11=y
|
|
||||||
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
|
|
||||||
|
|
||||||
# Uncomment the line below to enable RGB.
|
|
||||||
# CONFIG_ZMK_RGB_UNDERGLOW=y
|
|
|
@ -6,131 +6,102 @@
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include <st/f0/stm32f072Xb.dtsi>
|
#include <st/f0/stm32f072Xb.dtsi>
|
||||||
#include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi>
|
|
||||||
#include <dt-bindings/led/led.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Keeb.io BDN9 rev2";
|
model = "Keeb.io BDN9 rev2";
|
||||||
compatible = "keebio,bdn9", "st,stm32f072";
|
compatible = "keebio,bdn9", "st,stm32f072";
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zmk,kscan = &kscan;
|
zmk,kscan = &kscan;
|
||||||
zmk,underglow = &led_strip;
|
/* TODO: Enable once the GPIO bitbanging driver supports STM32
|
||||||
};
|
zmk,underglow = &led_strip;
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
kscan: kscan {
|
kscan: kscan {
|
||||||
compatible = "zmk,kscan-gpio-direct";
|
compatible = "zmk,kscan-gpio-direct";
|
||||||
|
label = "KSCAN";
|
||||||
|
|
||||||
input-gpios
|
input-gpios
|
||||||
= <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
= <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiob 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiob 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiob 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiob 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiob 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiob 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpioa 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpioa 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiof 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiof 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
, <&gpiof 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
, <&gpiof 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
left_encoder: encoder_left {
|
/*
|
||||||
compatible = "alps,ec11";
|
led_strip: ws2812 {
|
||||||
a-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
compatible = "worldsemi,ws2812-gpio";
|
||||||
b-gpios = <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
label = "WS2812";
|
||||||
steps = <80>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
mid_encoder: encoder_mid {
|
|
||||||
compatible = "alps,ec11";
|
|
||||||
a-gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
b-gpios = <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
steps = <80>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
right_encoder: encoder_right {
|
|
||||||
compatible = "alps,ec11";
|
|
||||||
a-gpios = <&gpioa 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
b-gpios = <&gpiob 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
steps = <80>;
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
sensors: sensors {
|
in-gpios = <&gpiob 15 0>;
|
||||||
compatible = "zmk,keymap-sensors";
|
|
||||||
status = "disabled";
|
chain-length = <9>;
|
||||||
sensors = <>;
|
};
|
||||||
triggers-per-rotation = <20>;
|
*/
|
||||||
};
|
|
||||||
|
left_encoder: encoder_left {
|
||||||
|
compatible = "alps,ec11";
|
||||||
|
label = "LEFT_ENCODER";
|
||||||
|
a-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
b-gpios = <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
resolution = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
mid_encoder: encoder_mid {
|
||||||
|
compatible = "alps,ec11";
|
||||||
|
label = "MID_ENCODER";
|
||||||
|
a-gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
b-gpios = <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
resolution = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
right_encoder: encoder_right {
|
||||||
|
compatible = "alps,ec11";
|
||||||
|
label = "RIGHT_ENCODER";
|
||||||
|
a-gpios = <&gpioa 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
b-gpios = <&gpiob 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
|
resolution = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
sensors: sensors {
|
||||||
|
compatible = "zmk,keymap-sensors";
|
||||||
|
status = "disabled";
|
||||||
|
sensors = <>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&spi2 {
|
&usb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
pinctrl-0 = <&spi2_sck_pb13 &spi2_mosi_pb15>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
|
|
||||||
led_strip: ws2812@0 {
|
|
||||||
compatible = "worldsemi,ws2812-spi";
|
|
||||||
|
|
||||||
/* SPI */
|
|
||||||
reg = <0>; /* ignored, but necessary for SPI bindings */
|
|
||||||
spi-max-frequency = <4000000>;
|
|
||||||
|
|
||||||
/* WS2812 */
|
|
||||||
chain-length = <9>;
|
|
||||||
spi-one-frame = <0x70>;
|
|
||||||
spi-zero-frame = <0x40>;
|
|
||||||
|
|
||||||
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&clk_hsi {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&pll {
|
|
||||||
status = "okay";
|
|
||||||
prediv = <1>;
|
|
||||||
mul = <6>;
|
|
||||||
clocks = <&clk_hsi>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&rcc {
|
|
||||||
clocks = <&pll>;
|
|
||||||
clock-frequency = <DT_FREQ_M(48)>;
|
|
||||||
ahb-prescaler = <1>;
|
|
||||||
apb1-prescaler = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
zephyr_udc0: &usb {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
|
|
||||||
// Overridden to lower RAM usage.
|
|
||||||
num-bidir-endpoints = <4>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
/*
|
/*
|
||||||
* For more information, see:
|
* For more information, see:
|
||||||
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
|
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
|
||||||
*/
|
*/
|
||||||
partitions {
|
partitions {
|
||||||
compatible = "fixed-partitions";
|
compatible = "fixed-partitions";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
/* Set 6Kb of storage at the end of the 128Kb of flash */
|
/* Set 6Kb of storage at the end of the 128Kb of flash */
|
||||||
storage_partition: partition@1e800 {
|
storage_partition: partition@3e800 {
|
||||||
reg = <0x0001e800 0x00001800>;
|
label = "storage";
|
||||||
};
|
reg = <0x0001e800 0x00001800>;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,15 +4,13 @@
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef ZMK_BEHAVIORS_KEEP_ALL
|
|
||||||
|
|
||||||
#include <behaviors.dtsi>
|
#include <behaviors.dtsi>
|
||||||
#include <dt-bindings/zmk/keys.h>
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
|
||||||
/* Uncomment and keep whatever encoders are on your BDN9
|
/* Uncomment and keep whatever encoders are on your BDN9
|
||||||
&sensors {
|
&sensors {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
sensors = <&left_encoder &mid_encoder &right_encoder>;
|
sensors = <&left_encoder &mid_encoder &right_encoder>;
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -22,19 +20,19 @@
|
||||||
// &right_encoder { status = "okay"; };
|
// &right_encoder { status = "okay"; };
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
keymap {
|
keymap {
|
||||||
compatible = "zmk,keymap";
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
default_layer {
|
default_layer {
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp HOME &kp K_PP &kp END
|
&kp HOME &kp K_PP &kp END
|
||||||
&kp PG_UP &kp UP &kp PG_DN
|
&kp PG_UP &kp UP &kp PG_DN
|
||||||
&kp LEFT &kp DOWN &kp RIGHT
|
&kp LEFT &kp DOWN &kp RIGHT
|
||||||
>;
|
>;
|
||||||
/* Uncomment and add necessary bindings. This examples is for one encoder
|
/* Uncomment and add necessary bindings. This examples is for one encoder
|
||||||
sensor-bindings = <&inc_dec_kp PG_UP PG_DN>;
|
sensor-bindings = <&inc_dec_kp PG_UP PG_DN>;
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bdn9_rev2
|
|
||||||
name: BDN9 Rev2
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://keeb.io/products/bdn9-rev-2-3x3-9-key-macropad-rotary-encoder-and-rgb
|
|
|
@ -1,11 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bdn9_rev2
|
|
||||||
name: BDN9 Rev2
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
url: https://keeb.io/collections/bdn9-collection/products/bdn9-rev-2-3x3-9-key-macropad-rotary-encoder-and-rgb
|
|
|
@ -5,18 +5,25 @@ CONFIG_SOC_STM32F072XB=y
|
||||||
# 72MHz system clock
|
# 72MHz system clock
|
||||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
|
# Floating Point Options
|
||||||
|
CONFIG_FPU=y
|
||||||
|
|
||||||
# enable GPIO
|
# enable GPIO
|
||||||
CONFIG_GPIO=y
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
# Enable pinctrl
|
# Needed to reduce this to size that will fit on F072
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_HEAP_MEM_POOL_SIZE=1024
|
||||||
|
|
||||||
# Poll to avoid interrupt overlap issues
|
|
||||||
CONFIG_ZMK_KSCAN_DIRECT_POLLING=y
|
|
||||||
|
|
||||||
CONFIG_ISR_STACK_SIZE=1024
|
|
||||||
|
|
||||||
# clock configuration
|
# clock configuration
|
||||||
CONFIG_CLOCK_CONTROL=y
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
# Clock configuration for Cube Clock control driver
|
||||||
|
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
|
||||||
|
# use HSI as PLL input
|
||||||
|
CONFIG_CLOCK_STM32_PLL_SRC_HSI=y
|
||||||
|
# produce 72MHz clock at PLL output
|
||||||
|
CONFIG_CLOCK_STM32_PLL_PREDIV=1
|
||||||
|
CONFIG_CLOCK_STM32_PLL_MULTIPLIER=12
|
||||||
|
CONFIG_CLOCK_STM32_AHB_PRESCALER=1
|
||||||
|
CONFIG_CLOCK_STM32_APB1_PRESCALER=2
|
||||||
|
CONFIG_CLOCK_STM32_APB2_PRESCALER=1
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: blackpill_f401cc
|
|
||||||
name: BlackPill F401CC
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1
|
|
||||||
exposes: [blackpill]
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: blackpill_f401ce
|
|
||||||
name: BlackPill F401CE
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1
|
|
||||||
exposes: [blackpill]
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: blackpill_f411ce
|
|
||||||
name: BlackPill F411CE
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1
|
|
||||||
exposes: [blackpill]
|
|
8
app/boards/arm/bluemicro840/CMakeLists.txt
Normal file
8
app/boards/arm/bluemicro840/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py
|
||||||
|
-c
|
||||||
|
-b 0x26000
|
||||||
|
-f 0xADA52840
|
||||||
|
-o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2
|
||||||
|
${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin
|
||||||
|
)
|
|
@ -1,8 +1,8 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
config BOARD_ENABLE_DCDC
|
config BOARD_ENABLE_DCDC
|
||||||
bool "Enable DCDC mode"
|
bool "Enable DCDC mode"
|
||||||
select SOC_DCDC_NRF52X
|
select SOC_DCDC_NRF52X
|
||||||
default y
|
default y
|
||||||
depends on BOARD_BLUEMICRO840_V1
|
depends on BOARD_BLUEMICRO840_V1
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
config BOARD_BLUEMICRO840_V1
|
config BOARD_BLUEMICRO840_V1
|
||||||
bool "BlueMicro840_V1"
|
bool "BlueMicro840_V1"
|
||||||
depends on SOC_NRF52840_QIAA
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
|
@ -6,16 +6,28 @@
|
||||||
if BOARD_BLUEMICRO840_V1
|
if BOARD_BLUEMICRO840_V1
|
||||||
|
|
||||||
config BOARD
|
config BOARD
|
||||||
default "bluemicro840_v1"
|
default "bluemicro840_v1"
|
||||||
|
|
||||||
if USB_DEVICE_STACK
|
if USB
|
||||||
|
|
||||||
config USB_NRFX
|
config USB_NRFX
|
||||||
default y
|
default y
|
||||||
|
|
||||||
endif # USB_DEVICE_STACK
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
config BT_CTLR
|
config BT_CTLR
|
||||||
default BT
|
default BT
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
||||||
|
default y
|
||||||
|
|
||||||
endif # BOARD_BLUEMICRO840_V1
|
endif # BOARD_BLUEMICRO840_V1
|
||||||
|
|
|
@ -5,53 +5,48 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
pro_micro: connector {
|
pro_micro_d: connector_d {
|
||||||
compatible = "arduino-pro-micro";
|
compatible = "arduino-pro-micro";
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
gpio-map-pass-thru = <0 0x3f>;
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
gpio-map
|
gpio-map
|
||||||
= <0 0 &gpio0 8 0> /* D0 D2 */
|
= <0 0 &gpio0 8 0> /* D0 D2 */
|
||||||
, <1 0 &gpio0 6 0> /* D1 D3*/
|
, <1 0 &gpio0 6 0> /* D1 D3*/
|
||||||
, <2 0 &gpio0 15 0> /* D2 D1*/
|
, <2 0 &gpio0 15 0> /* D2 D1*/
|
||||||
, <3 0 &gpio0 17 0> /* D3 D0*/
|
, <3 0 &gpio0 17 0> /* D3 D0*/
|
||||||
, <4 0 &gpio0 20 0> /* D4/A6 D4*/
|
, <4 0 &gpio0 20 0> /* D4/A6 D4*/
|
||||||
, <5 0 &gpio0 13 0> /* D5 C6*/
|
, <5 0 &gpio0 13 0> /* D5 C6*/
|
||||||
, <6 0 &gpio0 24 0> /* D6/A7 D7*/
|
, <6 0 &gpio0 24 0> /* D6/A7 D7*/
|
||||||
, <7 0 &gpio0 9 0> /* D7 E6*/
|
, <7 0 &gpio0 9 0> /* D7 E6*/
|
||||||
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
||||||
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
||||||
, <10 0 &gpio1 11 0> /* D10/A10 B6*/
|
, <10 0 &gpio1 11 0> /* D10/A10 B6*/
|
||||||
, <16 0 &gpio0 28 0> /* D16 B2*/
|
, <16 0 &gpio0 28 0> /* D16 B2*/
|
||||||
, <14 0 &gpio0 3 0> /* D14 B3*/
|
, <14 0 &gpio0 3 0> /* D14 B3*/
|
||||||
, <15 0 &gpio1 13 0> /* D15 B1*/
|
, <15 0 &gpio1 13 0> /* D15 B1*/
|
||||||
, <18 0 &gpio0 2 0> /* D18/A0 F7*/
|
;
|
||||||
, <19 0 &gpio0 29 0> /* D19/A1 F6*/
|
};
|
||||||
, <20 0 &gpio0 26 0> /* D20/A2 F5*/
|
|
||||||
, <21 0 &gpio0 30 0> /* D21/A3 F4*/
|
|
||||||
;
|
|
||||||
};
|
|
||||||
|
|
||||||
pro_micro_a: connector_a {
|
pro_micro_a: connector_a {
|
||||||
compatible = "arduino-pro-micro";
|
compatible = "arduino-pro-micro";
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
gpio-map-pass-thru = <0 0x3f>;
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
gpio-map
|
gpio-map
|
||||||
= <0 0 &gpio0 2 0> /* D18/A0 F7*/
|
= <0 0 &gpio0 2 0> /* A0 F7*/
|
||||||
, <1 0 &gpio0 29 0> /* D19/A1 F6*/
|
, <1 0 &gpio0 29 0> /* A1 F6*/
|
||||||
, <2 0 &gpio0 26 0> /* D20/A2 F5*/
|
, <2 0 &gpio0 26 0> /* A2 F5*/
|
||||||
, <3 0 &gpio0 30 0> /* D21/A3 F4*/
|
, <3 0 &gpio0 30 0> /* A3 F4*/
|
||||||
, <6 0 &gpio0 20 0> /* D4/A6 D4*/
|
, <6 0 &gpio0 20 0> /* D4/A6 D4*/
|
||||||
, <7 0 &gpio0 24 0> /* D6/A7 D7*/
|
, <7 0 &gpio0 24 0> /* D6/A7 D7*/
|
||||||
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
||||||
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
||||||
, <10 0 &gpio1 11 0> /* D10/A10 B6*/
|
, <10 0 &gpio1 13 0> /* D10/A10 B6*/
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pro_micro_d: &pro_micro {};
|
|
||||||
pro_micro_i2c: &i2c0 {};
|
pro_micro_i2c: &i2c0 {};
|
||||||
pro_micro_spi: &spi1 {};
|
pro_micro_spi: &spi0 {};
|
||||||
pro_micro_serial: &uart0 {};
|
pro_micro_serial: &uart0 {};
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2022 The ZMK Contributors
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
uart0_default: uart0_default {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(UART_RX, 0, 8)>;
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
group2 {
|
|
||||||
psels = <NRF_PSEL(UART_TX, 0, 6)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
uart0_sleep: uart0_sleep {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(UART_RX, 0, 8)>,
|
|
||||||
<NRF_PSEL(UART_TX, 0, 6)>;
|
|
||||||
low-power-enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0_default: i2c0_default {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(TWIM_SDA, 0, 15)>,
|
|
||||||
<NRF_PSEL(TWIM_SCL, 0, 17)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c0_sleep: i2c0_sleep {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(TWIM_SDA, 0, 15)>,
|
|
||||||
<NRF_PSEL(TWIM_SCL, 0, 17)>;
|
|
||||||
low-power-enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1_default: spi1_default {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
|
|
||||||
<NRF_PSEL(SPIM_MOSI, 0, 28)>,
|
|
||||||
<NRF_PSEL(SPIM_MISO, 0, 3)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
spi1_sleep: spi1_sleep {
|
|
||||||
group1 {
|
|
||||||
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
|
|
||||||
<NRF_PSEL(SPIM_MOSI, 0, 28)>,
|
|
||||||
<NRF_PSEL(SPIM_MISO, 0, 3)>;
|
|
||||||
low-power-enable;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -7,117 +7,110 @@
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include <nordic/nrf52840_qiaa.dtsi>
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
#include "arduino_pro_micro_pins.dtsi"
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
#include "bluemicro840_v1-pinctrl.dtsi"
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "BlueMicro840_V1";
|
model = "BlueMicro840_V1";
|
||||||
compatible = "bluemicro840,v1";
|
compatible = "bluemicro840,v1";
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
zephyr,code-partition = &code_partition;
|
zephyr,code-partition = &code_partition;
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zmk,battery = &vbatt;
|
};
|
||||||
};
|
|
||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 42 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
label = "Blue LED";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// Node name must match original "EXT_POWER" label to preserve user settings.
|
ext-power {
|
||||||
EXT_POWER {
|
compatible = "zmk,ext-power-generic";
|
||||||
compatible = "zmk,ext-power-generic";
|
label = "EXT_POWER";
|
||||||
init-delay-ms = <20>;
|
control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||||
control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
};
|
||||||
};
|
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
io-channels = <&adc 7>;
|
label = "BATTERY";
|
||||||
output-ohms = <2000000>;
|
io-channels = <&adc 7>;
|
||||||
full-ohms = <(2000000 + 806000)>;
|
output-ohms = <2000000>;
|
||||||
};
|
full-ohms = <(2000000 + 806000)>;
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&adc {
|
&adc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpiote {
|
&gpiote {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio0 {
|
&gpio0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio1 {
|
&gpio1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
compatible = "nordic,nrf-twi";
|
compatible = "nordic,nrf-twi";
|
||||||
pinctrl-0 = <&i2c0_default>;
|
sda-pin = <15>;
|
||||||
pinctrl-1 = <&i2c0_sleep>;
|
scl-pin = <17>;
|
||||||
pinctrl-names = "default", "sleep";
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi1 {
|
|
||||||
compatible = "nordic,nrf-spim";
|
|
||||||
pinctrl-0 = <&spi1_default>;
|
|
||||||
pinctrl-1 = <&spi1_sleep>;
|
|
||||||
pinctrl-names = "default", "sleep";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
compatible = "nordic,nrf-uarte";
|
compatible = "nordic,nrf-uarte";
|
||||||
current-speed = <115200>;
|
tx-pin = <6>;
|
||||||
pinctrl-0 = <&uart0_default>;
|
rx-pin = <8>;
|
||||||
pinctrl-1 = <&uart0_sleep>;
|
|
||||||
pinctrl-names = "default", "sleep";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
zephyr_udc0: &usbd {
|
&usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
/*
|
/*
|
||||||
* For more information, see:
|
* For more information, see:
|
||||||
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
*/
|
*/
|
||||||
partitions {
|
partitions {
|
||||||
compatible = "fixed-partitions";
|
compatible = "fixed-partitions";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
sd_partition: partition@0 {
|
||||||
reg = <0x00000000 0x00026000>;
|
label = "softdevice";
|
||||||
};
|
reg = <0x00000000 0x00026000>;
|
||||||
code_partition: partition@26000 {
|
};
|
||||||
reg = <0x00026000 0x000c6000>;
|
code_partition: partition@26000 {
|
||||||
};
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The flash starting at 0x000ec000 and ending at
|
* The flash starting at 0x000ec000 and ending at
|
||||||
* 0x000f3fff is reserved for use by the application.
|
* 0x000f3fff is reserved for use by the application.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Storage partition will be used by FCB/LittleFS/NVS
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
* if enabled.
|
* if enabled.
|
||||||
*/
|
*/
|
||||||
storage_partition: partition@ec000 {
|
storage_partition: partition@ec000 {
|
||||||
reg = <0x000ec000 0x00008000>;
|
label = "storage";
|
||||||
};
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
boot_partition: partition@f4000 {
|
||||||
reg = <0x000f4000 0x0000c000>;
|
label = "adafruit_boot";
|
||||||
};
|
reg = <0x000f4000 0x0000c000>;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bluemicro840_v1
|
|
||||||
name: BlueMicro840 v1
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
url: https://nrf52.jpconstantineau.com/docs/bluemicro840_v1/
|
|
||||||
exposes: [pro_micro]
|
|
|
@ -7,13 +7,10 @@ CONFIG_BOARD_BLUEMICRO840_V1=y
|
||||||
# Enable MPU
|
# Enable MPU
|
||||||
CONFIG_ARM_MPU=y
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
|
|
||||||
# enable GPIO
|
# enable GPIO
|
||||||
CONFIG_GPIO=y
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
CONFIG_NVS=y
|
CONFIG_NVS=y
|
||||||
|
@ -21,6 +18,3 @@ CONFIG_SETTINGS_NVS=y
|
||||||
CONFIG_FLASH=y
|
CONFIG_FLASH=y
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
CONFIG_FLASH_MAP=y
|
CONFIG_FLASH_MAP=y
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2024 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
|
||||||
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
|
||||||
|
|
||||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
|
|
@ -1,9 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: boardsource_blok
|
|
||||||
name: BoardSource blok
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
url: https://peg.software/docs/blok
|
|
||||||
exposes: [pro_micro]
|
|
|
@ -1,7 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD_ENABLE_DCDC
|
|
||||||
bool "Enable DCDC mode"
|
|
||||||
select SOC_DCDC_NRF52X
|
|
||||||
default y
|
|
||||||
depends on (BOARD_BT60_V1_HS || BOARD_BT60_V1)
|
|
|
@ -1,12 +0,0 @@
|
||||||
# BT60 board configuration
|
|
||||||
|
|
||||||
# Copyright (c) 2021 Polarity Works
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD_BT60_V1
|
|
||||||
bool "bt60"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
||||||
|
|
||||||
config BOARD_BT60_V1_HS
|
|
||||||
bool "bt60 hotswap"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
|
@ -1,25 +0,0 @@
|
||||||
# Copyright (c) 2021 Polarity Works
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
if BOARD_BT60_V1_HS || BOARD_BT60_V1
|
|
||||||
|
|
||||||
config BOARD
|
|
||||||
default "bt60"
|
|
||||||
|
|
||||||
if USB
|
|
||||||
|
|
||||||
config USB_NRFX
|
|
||||||
default y
|
|
||||||
|
|
||||||
config USB_DEVICE_STACK
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif # USB
|
|
||||||
|
|
||||||
config BT_CTLR
|
|
||||||
default BT
|
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
|
||||||
default "BT60"
|
|
||||||
|
|
||||||
endif # BOARD_BT60
|
|
|
@ -1,5 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
|
|
@ -1,111 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2021 Polarity Works
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include <nordic/nrf52840_qiaa.dtsi>
|
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
model = "BT60";
|
|
||||||
compatible = "polarityworks,bt60";
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
zephyr,code-partition = &code_partition;
|
|
||||||
zephyr,sram = &sram0;
|
|
||||||
zephyr,flash = &flash0;
|
|
||||||
zmk,battery = &vbatt;
|
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,matrix-transform = &default_transform;
|
|
||||||
};
|
|
||||||
|
|
||||||
sensors: sensors {
|
|
||||||
compatible = "zmk,keymap-sensors";
|
|
||||||
sensors = <&left_encoder>;
|
|
||||||
triggers-per-rotation = <20>;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
left_encoder: encoder_left {
|
|
||||||
compatible = "alps,ec11";
|
|
||||||
a-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
b-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
|
||||||
steps = <80>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
leds {
|
|
||||||
compatible = "gpio-leds";
|
|
||||||
blue_led: led_0 {
|
|
||||||
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
vbatt: vbatt {
|
|
||||||
compatible = "zmk,battery-voltage-divider";
|
|
||||||
io-channels = <&adc 2>;
|
|
||||||
output-ohms = <2000000>;
|
|
||||||
full-ohms = <(2000000 + 806000)>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&adc {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpiote {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
zephyr_udc0: &usbd {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
&flash0 {
|
|
||||||
/*
|
|
||||||
* For more information, see:
|
|
||||||
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
|
||||||
*/
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
|
||||||
reg = <0x00000000 0x00026000>;
|
|
||||||
};
|
|
||||||
code_partition: partition@26000 {
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The flash starting at 0x000ec000 and ending at
|
|
||||||
* 0x000f3fff is reserved for use by the application.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Storage partition will be used by FCB/LittleFS/NVS
|
|
||||||
* if enabled.
|
|
||||||
*/
|
|
||||||
storage_partition: partition@ec000 {
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,114 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2021 Polarity Works
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include "bt60.dtsi"
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
};
|
|
||||||
|
|
||||||
ansi_transform: keymap_transform_0 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
|
||||||
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13) RC(4,14)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
hhkb_transform: keymap_transform_1 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
|
||||||
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,14)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
iso_transform: keymap_transform_2 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
all_1u_transform: keymap_transform_3 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
|
||||||
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,13) RC(3,14)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13) RC(4,14)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
split_transform: keymap_transform_4 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
|
||||||
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,14)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
kscan0: kscan_0 {
|
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
|
||||||
wakeup-source;
|
|
||||||
|
|
||||||
diode-direction = "col2row";
|
|
||||||
|
|
||||||
col-gpios
|
|
||||||
= <&gpio1 13 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 10 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 11 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 15 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 3 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 29 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 30 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 31 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 5 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 12 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 23 GPIO_ACTIVE_HIGH>
|
|
||||||
;
|
|
||||||
|
|
||||||
row-gpios
|
|
||||||
= <&gpio1 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 22 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,180 +0,0 @@
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <dt-bindings/zmk/bt.h>
|
|
||||||
|
|
||||||
#define ANSI true
|
|
||||||
//#define HHKB true
|
|
||||||
//#define ISO true
|
|
||||||
//#define ALL_1U true
|
|
||||||
//#define SPLIT_BKSP_RSHFT true
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
#ifdef ANSI
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
#elif defined(HHKB)
|
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
|
||||||
#elif defined(ISO)
|
|
||||||
zmk,matrix-transform = &iso_transform;
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
|
||||||
#else
|
|
||||||
zmk,matrix-transform = &split_transform;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
#ifdef ANSI
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
|
||||||
// | TAB | Q | UP | E | R | T | Y | U | INS | O |PSCRN|SLCK |PSEBRK| RESET |
|
|
||||||
// | CAPS |LEFT |DOWN |RIGHT| F | G | H | J | K | L |HOME |PGUP | BOOTLOADER |
|
|
||||||
// | PREV |VOLUP |VOLDN|MUTE | V | B | N | M | , | END | PGDN | NEXT |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | BT_CLR |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR &trans
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(HHKB)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | 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 | 1 |
|
|
||||||
// | CAPS | ALT | WIN | SPACE | WIN | ALT | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSLH &kp GRAVE
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSPC
|
|
||||||
&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &mo 1
|
|
||||||
&kp LCTRL &kp LALT &kp LGUI &kp SPACE &kp RGUI &kp RALT &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp INS &kp DEL
|
|
||||||
&kp CLCK &bt BT_PRV &bt BT_NXT &bt BT_CLR &trans &trans &trans &trans &trans &trans &trans &kp UP &trans &sys_reset
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &trans &kp LEFT &kp RIGHT &trans
|
|
||||||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp DOWN &trans &trans
|
|
||||||
&trans &trans &trans &bootloader &trans &trans &trans
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ISO)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET
|
|
||||||
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
|
||||||
&sys_reset &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &trans &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 | , | . | / | SHFT | UP | 1 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | CTRL | LEFT | DOWN | RIGHT |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &mo 1
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F1
|
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC| DEL |
|
|
||||||
// | 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 | 1 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &mo 1
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &kp C_MENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans
|
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT &trans
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
identifier: bt60_v1
|
|
||||||
name: BT60 V1 Soldered
|
|
||||||
type: mcu
|
|
||||||
arch: arm
|
|
||||||
toolchain:
|
|
||||||
- zephyr
|
|
||||||
- gnuarmemb
|
|
||||||
- xtools
|
|
||||||
supported:
|
|
||||||
- adc
|
|
||||||
- usb_device
|
|
||||||
- ble
|
|
||||||
- ieee802154
|
|
||||||
- pwm
|
|
||||||
- watchdog
|
|
|
@ -1,12 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bt60_v1
|
|
||||||
name: BT60 V1 Soldered
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
url: https://polarityworks.com
|
|
|
@ -1,28 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_NRF52X=y
|
|
||||||
CONFIG_SOC_NRF52840_QIAA=y
|
|
||||||
CONFIG_BOARD_BT60_V1=y
|
|
||||||
|
|
||||||
# Enable MPU
|
|
||||||
CONFIG_ARM_MPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
|
||||||
CONFIG_GPIO=y
|
|
||||||
|
|
||||||
# encoder
|
|
||||||
CONFIG_EC11=y
|
|
||||||
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
|
|
||||||
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
|
||||||
CONFIG_NVS=y
|
|
||||||
CONFIG_SETTINGS_NVS=y
|
|
||||||
CONFIG_FLASH=y
|
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
|
||||||
CONFIG_FLASH_MAP=y
|
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
|
@ -1,62 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2021 Polarity Works
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include "bt60.dtsi"
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,matrix-transform = &default_transform;
|
|
||||||
};
|
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(2,13)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
kscan0: kscan_0 {
|
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
|
||||||
wakeup-source;
|
|
||||||
|
|
||||||
diode-direction = "col2row";
|
|
||||||
|
|
||||||
col-gpios
|
|
||||||
= <&gpio1 11 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 10 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 13 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 15 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 3 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 29 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 30 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 31 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 5 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
|
||||||
, <&gpio0 12 GPIO_ACTIVE_HIGH>
|
|
||||||
;
|
|
||||||
|
|
||||||
row-gpios
|
|
||||||
= <&gpio1 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 22 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
, <&gpio0 23 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,37 +0,0 @@
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <dt-bindings/zmk/bt.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &bt BT_CLR
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans
|
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
identifier: bt60_v1_hs
|
|
||||||
name: BT60 V1 Hotswap
|
|
||||||
type: mcu
|
|
||||||
arch: arm
|
|
||||||
toolchain:
|
|
||||||
- zephyr
|
|
||||||
- gnuarmemb
|
|
||||||
- xtools
|
|
||||||
supported:
|
|
||||||
- adc
|
|
||||||
- usb_device
|
|
||||||
- ble
|
|
||||||
- ieee802154
|
|
||||||
- pwm
|
|
||||||
- watchdog
|
|
|
@ -1,12 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bt60_v1_hs
|
|
||||||
name: BT60 V1 Hotswap
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
url: https://polarityworks.com
|
|
|
@ -1,28 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_NRF52X=y
|
|
||||||
CONFIG_SOC_NRF52840_QIAA=y
|
|
||||||
CONFIG_BOARD_BT60_V1_HS=y
|
|
||||||
|
|
||||||
# Enable MPU
|
|
||||||
CONFIG_ARM_MPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
|
||||||
CONFIG_GPIO=y
|
|
||||||
|
|
||||||
# encoder
|
|
||||||
CONFIG_EC11=y
|
|
||||||
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
|
|
||||||
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
|
||||||
CONFIG_NVS=y
|
|
||||||
CONFIG_SETTINGS_NVS=y
|
|
||||||
CONFIG_FLASH=y
|
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
|
||||||
CONFIG_FLASH_MAP=y
|
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2024 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
#
|
|
||||||
|
|
||||||
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
|
||||||
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
|
||||||
|
|
||||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
|
|
@ -1,8 +0,0 @@
|
||||||
# Copyright (c) 2022 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD_ENABLE_DCDC
|
|
||||||
bool "Enable DCDC mode"
|
|
||||||
select SOC_DCDC_NRF52X
|
|
||||||
default y
|
|
||||||
depends on BOARD_BT60_V2 || BOARD_BT65_V1 || BOARD_BT75_V1
|
|
|
@ -1,16 +0,0 @@
|
||||||
# CKP boards configuration
|
|
||||||
|
|
||||||
# Copyright (c) 2022 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD_BT60_V2
|
|
||||||
bool "bt60_v2"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
||||||
|
|
||||||
config BOARD_BT65_V1
|
|
||||||
bool "bt65_v1"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
||||||
|
|
||||||
config BOARD_BT75_V1
|
|
||||||
bool "bt75_v1"
|
|
||||||
depends on SOC_NRF52840_QIAA
|
|
|
@ -1,28 +0,0 @@
|
||||||
# Copyright (c) 2022 The ZMK Contributors
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
config BOARD
|
|
||||||
default "bt60_v2" if BOARD_BT60_V2
|
|
||||||
default "bt65_v1" if BOARD_BT65_V1
|
|
||||||
default "bt75_v1" if BOARD_BT75_V1
|
|
||||||
config ZMK_KEYBOARD_NAME
|
|
||||||
default "BT60 V2" if BOARD_BT60_V2
|
|
||||||
default "BT65" if BOARD_BT65_V1
|
|
||||||
default "BT75" if BOARD_BT75_V1
|
|
||||||
|
|
||||||
if BOARD_BT60_V2 || BOARD_BT65_V1 || BOARD_BT75_V1
|
|
||||||
|
|
||||||
if USB
|
|
||||||
|
|
||||||
config USB_NRFX
|
|
||||||
default y
|
|
||||||
|
|
||||||
config USB_DEVICE_STACK
|
|
||||||
default y
|
|
||||||
|
|
||||||
endif # USB
|
|
||||||
|
|
||||||
config BT_CTLR
|
|
||||||
default BT
|
|
||||||
|
|
||||||
endif # BOARD_BT60_V2 || BOARD_BT65_V1 || BOARD_BT75_V1
|
|
|
@ -1,5 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2022 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include "ckp.dtsi"
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
|
||||||
model = "BT60_V2";
|
|
||||||
compatible = "polarityworks,bt60_v2";
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
ansi_transform: keymap_transform_0 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13)
|
|
||||||
RC(4,0) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
iso_transform: keymap_transform_1 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,13)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
all_1u_transform: keymap_transform_2 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,13) RC(4,14)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13) RC(5,14)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
hhkb_transform: keymap_transform_3 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13)
|
|
||||||
RC(4,0) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,11) RC(5,12) RC(5,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,177 +0,0 @@
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <dt-bindings/zmk/bt.h>
|
|
||||||
#include <dt-bindings/zmk/rgb.h>
|
|
||||||
#include <dt-bindings/zmk/backlight.h>
|
|
||||||
|
|
||||||
#define ANSI
|
|
||||||
//#define ISO
|
|
||||||
//#define ALL_1U
|
|
||||||
//#define HHKB
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
#ifdef ANSI
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
#elif defined(ISO)
|
|
||||||
zmk,matrix-transform = &iso_transform;
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
|
||||||
#elif defined(HHKB)
|
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
|
||||||
#else
|
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
#ifdef ANSI
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
|
||||||
// | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG|
|
|
||||||
// | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
|
|
||||||
// | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | END | PGDN | BL_TOG |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | RESET | BT_CLR |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
|
||||||
&trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &sys_reset &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ISO)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT
|
|
||||||
&kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET
|
|
||||||
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
|
||||||
// | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | |
|
|
||||||
// | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP|RGB_TOG| BOOT |
|
|
||||||
// | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| B | N | M | , | END | PGDN | BL_TOG |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | RESET |BT_CLR |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
|
||||||
&trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &rgb_ug RGB_TOG &bootloader
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &sys_reset &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC | DEL |
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
|
||||||
// | SHFT |NONE| Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | RALT| CTRL | LEFT | DOWN | RIGHT |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &mo 1
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |BSPC | DEL |
|
|
||||||
// | TAB | Q | W | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG |
|
|
||||||
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
|
|
||||||
// | SHFT |NONE|VOLDN|VOLUP|MUTE|BLINC|BLDEC| N | M | , | END | PGDN | SHFT|BL_TOG| 1 |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | RALT| CTRL | LEFT |RESET| BT_CLR |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&trans &none &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &trans &bl BL_TOG &trans
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &sys_reset &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(HHKB)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
|
||||||
// | 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 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
|
||||||
// | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG|
|
|
||||||
// | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
|
|
||||||
// | SHFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | END | PGDN | BL_TOG |
|
|
||||||
// | BT_PRV | BT_NXT | ALT | SPACE | RESET | 1 | BT_CLR |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
|
||||||
&trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &sys_reset &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
identifier: bt60_v2
|
|
||||||
name: BT60 V2
|
|
||||||
type: mcu
|
|
||||||
arch: arm
|
|
||||||
toolchain:
|
|
||||||
- zephyr
|
|
||||||
- gnuarmemb
|
|
||||||
- xtools
|
|
||||||
supported:
|
|
||||||
- adc
|
|
||||||
- usb_device
|
|
||||||
- ble
|
|
||||||
- ieee802154
|
|
||||||
- pwm
|
|
||||||
- watchdog
|
|
|
@ -1,14 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bt60_v2
|
|
||||||
name: BT60 V2
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
- underglow
|
|
||||||
- backlight
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
url: https://polarityworks.com/btckp
|
|
|
@ -1,41 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_NRF52X=y
|
|
||||||
CONFIG_SOC_NRF52840_QIAA=y
|
|
||||||
CONFIG_BOARD_BT60_V2=y
|
|
||||||
|
|
||||||
# Enable MPU
|
|
||||||
CONFIG_ARM_MPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
|
||||||
CONFIG_GPIO=y
|
|
||||||
CONFIG_PINCTRL=y
|
|
||||||
|
|
||||||
# encoder
|
|
||||||
CONFIG_EC11=y
|
|
||||||
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
|
|
||||||
|
|
||||||
CONFIG_USE_DT_CODE_PARTITION=y
|
|
||||||
CONFIG_PWM=y
|
|
||||||
CONFIG_LED_PWM=y
|
|
||||||
CONFIG_ZMK_BACKLIGHT=y
|
|
||||||
CONFIG_BUILD_OUTPUT_UF2=y
|
|
||||||
|
|
||||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
|
||||||
CONFIG_NVS=y
|
|
||||||
CONFIG_SETTINGS_NVS=y
|
|
||||||
CONFIG_FLASH=y
|
|
||||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
|
||||||
CONFIG_FLASH_MAP=y
|
|
||||||
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y
|
|
||||||
CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=262
|
|
||||||
CONFIG_WS2812_STRIP=y
|
|
||||||
CONFIG_SPI=y
|
|
||||||
|
|
||||||
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
|
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
|
||||||
CONFIG_ZMK_BLE=y
|
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2022 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
#include "ckp.dtsi"
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
|
||||||
model = "BT65_V1";
|
|
||||||
compatible = "polarityworks,bt65_v1";
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
ansi_transform: keymap_transform_0 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <16>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,15)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,15)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13) RC(3,15)
|
|
||||||
RC(4,0) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,14) RC(4,15)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13) RC(5,14) RC(5,15)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
iso_transform: keymap_transform_1 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <16>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,15)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,15)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,13) RC(3,15)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,14) RC(4,15)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13) RC(5,14) RC(5,15)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
all_1u_transform: keymap_transform_2 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <16>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,14) RC(1,15)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,15)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13) RC(3,15)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,13) RC(4,14) RC(4,15)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13) RC(5,14) RC(5,15)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
hhkb_transform: keymap_transform_3 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <16>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13) RC(1,15)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13) RC(2,15)
|
|
||||||
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13) RC(3,15)
|
|
||||||
RC(4,0) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,15)
|
|
||||||
RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,11) RC(5,12) RC(5,13) RC(5,15)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,177 +0,0 @@
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <dt-bindings/zmk/bt.h>
|
|
||||||
#include <dt-bindings/zmk/rgb.h>
|
|
||||||
#include <dt-bindings/zmk/backlight.h>
|
|
||||||
|
|
||||||
#define ANSI
|
|
||||||
//#define ISO
|
|
||||||
//#define ALL_1U
|
|
||||||
//#define HHKB
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
#ifdef ANSI
|
|
||||||
zmk,matrix-transform = &ansi_transform;
|
|
||||||
#elif defined(ISO)
|
|
||||||
zmk,matrix-transform = &iso_transform;
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
|
||||||
#elif defined(HHKB)
|
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
|
||||||
#else
|
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap"
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
#ifdef ANSI
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | INS |
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 |RCTRL| LEFT| DOWN|RIGHT|
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp INS
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | BL_TOG |RGB_TOG|
|
|
||||||
// | TAB | Q | W | E | HUI | HUD | Y | U | I | O | P | SLCK| ] | RESET | PSCRN|
|
|
||||||
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | ; | ' | BOOT | P_BRK|
|
|
||||||
// | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | . | / | SHIFT | HOME | END |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | CTRL | LEFT | DOWN |BT_CLR|
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bl BL_TOG &rgb_ug RGB_TOG
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &trans &trans &trans &kp SLCK &trans &sys_reset &kp PSCRN
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &trans &trans &bootloader &kp PAUSE_BREAK
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &trans &trans &kp HOME &kp END
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ISO)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | INS |
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER | PGUP|
|
|
||||||
// |SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 |RCTRL| LEFT| DOWN|RIGHT|
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp INS
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET &kp PG_UP
|
|
||||||
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | BL_TOG |RGB_TOG|
|
|
||||||
// | TAB | Q | W | E | HUI | HUD | Y | U | I | O | P | SLCK| ] | | PSCRN|
|
|
||||||
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | ; | ' |RESET| BOOT | P_BRK|
|
|
||||||
// |SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| B | N | M | , | . | / | SHIFT | HOME | END |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | CTRL | LEFT | DOWN |BT_CLR|
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bl BL_TOG &rgb_ug RGB_TOG
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &trans &trans &trans &kp SLCK &trans &kp PSCRN
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &trans &trans &sys_reset &bootloader &kp PAUSE_BREAK
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &trans &trans &trans &kp HOME &kp END
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(ALL_1U)
|
|
||||||
default_layer {
|
|
||||||
// -------------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC | DEL | HOME|
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | END |
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
|
||||||
// |SHIFT|NONE | Z | X | C | V | B | N | M | , | . | / |SHIFT|NONE | UP | PGDN|
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 |RCTRL| LEFT| DOWN|RIGHT|
|
|
||||||
// -------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL &kp HOME
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp END
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
|
||||||
&kp LSHFT &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &none &kp UP &kp PG_DN
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp LALT &mo 1 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |BL_TOG|RGB_TOG|HOME|
|
|
||||||
// | TAB | Q | W | E | HUI | HUD | Y | U | I | O | P | SLCK| ] | RESET | PSCRN|
|
|
||||||
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | ; | ' | BOOT | P_BRK|
|
|
||||||
// |SHIFT| NONE|VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | . | / |SHIFT| NONE| UP | INS |
|
|
||||||
// | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | CTRL| LEFT| DOWN |BT_CLR|
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bl BL_TOG &rgb_ug RGB_TOG &trans
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &trans &trans &trans &kp SLCK &trans &sys_reset &kp PSCRN
|
|
||||||
&trans &trans &trans &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &trans &trans &bootloader &kp PAUSE_BREAK
|
|
||||||
&trans &none &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &trans &trans &trans &trans &kp INS
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#elif defined(HHKB)
|
|
||||||
default_layer {
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | HOME|
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | END |
|
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | PGUP|
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL | PGDN|
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp HOME
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp END
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp PG_UP
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp RCTRL &kp PG_DN
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | BL_TOG |RGB_TOG|
|
|
||||||
// | TAB | Q | UP | E | HUI | HUD | Y | U | I | O | P | SLCK| ] | RESET | PSCRN|
|
|
||||||
// | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | ; | ' | BOOT | P_BRK|
|
|
||||||
// | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | . | / | SHIFT | INS |
|
|
||||||
// | BT_PRV | BT_NXT | ALT | SPACE | ALT | 1 | CTRL |BT_CLR|
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bl BL_TOG &rgb_ug RGB_TOG
|
|
||||||
&trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &trans &trans &trans &kp SLCK &trans &sys_reset &kp PSCRN
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &trans &trans &bootloader &kp PAUSE_BREAK
|
|
||||||
&trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &trans &trans &kp INS
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
identifier: bt65_v1
|
|
||||||
name: BT65_V1
|
|
||||||
type: mcu
|
|
||||||
arch: arm
|
|
||||||
toolchain:
|
|
||||||
- zephyr
|
|
||||||
- gnuarmemb
|
|
||||||
- xtools
|
|
||||||
supported:
|
|
||||||
- adc
|
|
||||||
- usb_device
|
|
||||||
- ble
|
|
||||||
- ieee802154
|
|
||||||
- pwm
|
|
||||||
- watchdog
|
|
|
@ -1,14 +0,0 @@
|
||||||
file_format: "1"
|
|
||||||
id: bt65_v1
|
|
||||||
name: BT65
|
|
||||||
type: board
|
|
||||||
arch: arm
|
|
||||||
features:
|
|
||||||
- keys
|
|
||||||
- encoder
|
|
||||||
- underglow
|
|
||||||
- backlight
|
|
||||||
outputs:
|
|
||||||
- usb
|
|
||||||
- ble
|
|
||||||
url: https://polarityworks.com/btckp
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue