From 16ffc7aca68d98c46fcafe5c69f5827a2498957e Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Fri, 29 Apr 2022 15:19:47 +0000 Subject: [PATCH 1/7] fix(build): Temporarily disable user build caching * GH Actions errors, disabling caching of west modules for now. --- .github/workflows/build-user-config.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-user-config.yml b/.github/workflows/build-user-config.yml index cb462b1a..465ceb1a 100644 --- a/.github/workflows/build-user-config.yml +++ b/.github/workflows/build-user-config.yml @@ -1,21 +1,21 @@ name: Reusable user config build -on: +on: workflow_call: inputs: build_matrix_path: - description: 'Path to the build matrix file' - default: 'build.yaml' + description: "Path to the build matrix file" + default: "build.yaml" required: false type: string config_path: - description: 'Path to the config directory' - default: 'config' + 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' + description: "Fallback binary format, if no *.uf2 file was built" + default: "bin" required: false type: string @@ -71,6 +71,7 @@ jobs: - name: Cache west modules uses: actions/cache@v3.0.1 + if: false # Disabled for now, caching is broken env: cache-name: cache-zephyr-${{ steps.variables.outputs.zephyr-version }}-modules with: @@ -101,7 +102,7 @@ jobs: - name: ${{ steps.variables.outputs.display-name }} Kconfig file run: cat build/zephyr/.config | grep -v "^#" | grep -v "^$" | sort - + - name: Rename artifacts run: | mkdir build/artifacts @@ -112,7 +113,7 @@ jobs: then cp build/zephyr/zmk.${{ inputs.fallback_binary }} "build/artifacts/${{ steps.variables.outputs.artifact-name }}.${{ inputs.fallback_binary }}" fi - + - name: Archive (${{ steps.variables.outputs.display-name }}) uses: actions/upload-artifact@v2 with: From aa3773fb9333dce03e1d5d9507b25ce92ee091d3 Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Fri, 29 Apr 2022 16:31:26 +0000 Subject: [PATCH 2/7] fix(build): Use `continue-on-error` for cache. * Switch to attempting caching, but with `continue-on-error` so we don't fail builds while waiting on GH Actions fix. --- .github/workflows/build-user-config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-user-config.yml b/.github/workflows/build-user-config.yml index 465ceb1a..c3aeff20 100644 --- a/.github/workflows/build-user-config.yml +++ b/.github/workflows/build-user-config.yml @@ -71,7 +71,7 @@ jobs: - name: Cache west modules uses: actions/cache@v3.0.1 - if: false # Disabled for now, caching is broken + continue-on-error: true env: cache-name: cache-zephyr-${{ steps.variables.outputs.zephyr-version }}-modules with: From e5843b268c3f4c6f08e8076a79695f4da3e604a6 Mon Sep 17 00:00:00 2001 From: Dom H Date: Fri, 29 Apr 2022 17:03:32 +0100 Subject: [PATCH 3/7] fix(docs): Clarify `timeout-ms` for Combos --- docs/docs/features/combos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/features/combos.md b/docs/docs/features/combos.md index 550bd251..55e1563c 100644 --- a/docs/docs/features/combos.md +++ b/docs/docs/features/combos.md @@ -25,7 +25,7 @@ Combos configured in your `.keymap` file, but are separate from the `keymap` nod - The name of the combo doesn't really matter, but convention is to start the node name with `combo_`. - The `compatible` property should always be `"zmk,combos"` for combos. -- `timeout-ms` is the number of milliseconds that all keys of the combo must be pressed. +- `timeout-ms` is the length of the window (in milliseconds) in which all keys of the combo must be pressed in order to successfully trigger the combo. - `key-positions` is an array of key positions. See the info section below about how to figure out the positions on your board. - `layers = <0 1...>` will allow limiting a combo to specific layers. This is an _optional_ parameter, when omitted it defaults to global scope. - `bindings` is the behavior that is activated when the behavior is pressed. From d33b35513b4a01b365f6b82f6c0d63e22e56d849 Mon Sep 17 00:00:00 2001 From: Nick Winans Date: Tue, 26 Apr 2022 12:59:16 -0500 Subject: [PATCH 4/7] feat(usb): Set default HID interval to 1ms (1000Hz) --- app/Kconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Kconfig b/app/Kconfig index fea2203d..9b47c4c2 100644 --- a/app/Kconfig +++ b/app/Kconfig @@ -88,6 +88,9 @@ if ZMK_USB config USB_NUMOF_EP_WRITE_RETRIES default 10 +config USB_HID_POLL_INTERVAL_MS + default 1 + #ZMK_USB endif From d7b912b79843391d79b96a592ebb611324e68c1b Mon Sep 17 00:00:00 2001 From: Joel Spadin Date: Fri, 29 Apr 2022 21:37:51 -0500 Subject: [PATCH 5/7] fix(docs): Fix broken links in FAQs --- docs/docs/faq.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/faq.md b/docs/docs/faq.md index 6a16f6f8..36ecc010 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -7,10 +7,10 @@ sidebar_label: FAQs As a best-in-class RTOS, Zephyr™ brings many [benefits](https://www.zephyrproject.org/benefits) to ZMK, such as: -- A _single_ platform [supporting](https://docs.zephyrproject.org/latest/boards) many architectures, processors and boards. +- A _single_ platform [supporting](https://docs.zephyrproject.org/latest/boards/index.html) many architectures, processors and boards. - Optimization for low-powered, small memory footprint devices. -- Powerful hardware abstraction and configuration using [DeviceTree](https://docs.zephyrproject.org/latest/guides/dts/index.html) and [Kconfig](https://docs.zephyrproject.org/latest/guides/kconfig/index.html). -- A BLE stack that periodically obtains [qualification](https://docs.zephyrproject.org/latest/guides/bluetooth/bluetooth-qual.html) listings, making it easier for final products to obtain qualification from the Bluetooth® SIG. +- Powerful hardware abstraction and configuration using [DeviceTree](https://docs.zephyrproject.org/latest/guides/dts/index.html) and [Kconfig](https://docs.zephyrproject.org/latest/build/kconfig/index.html). +- A BLE stack that periodically obtains [qualification](https://docs.zephyrproject.org/latest/connectivity/bluetooth/bluetooth-qual.html) listings, making it easier for final products to obtain qualification from the Bluetooth® SIG. - Multi-processor support, which is critical for power efficiency in upcoming MCUs. - Permissive licensing with its Apache 2.0 open source [license](https://www.apache.org/licenses/LICENSE-2.0). - A buzzing developer [community](https://github.com/zephyrproject-rtos/zephyr) including many leading [embedded technology](https://www.zephyrproject.org/project-members) companies. From 8bbbf530a70685fa5b84e24526cb685c70c099e5 Mon Sep 17 00:00:00 2001 From: Kurtis Lew Date: Sun, 1 May 2022 12:59:38 -0700 Subject: [PATCH 6/7] fix(docs): Remove code-snippet backticks from customization.md title Discussed here: https://discord.com/channels/719497620560543766/883452966114324550/970385441134104747 Code snippets in titles are not formatted properly in page titles --- docs/docs/customization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/customization.md b/docs/docs/customization.md index 47ebe417..ff5da61d 100644 --- a/docs/docs/customization.md +++ b/docs/docs/customization.md @@ -1,5 +1,5 @@ --- -title: Customizing ZMK/`zmk-config` folders +title: Customizing ZMK/zmk-config folders sidebar_label: Customizing ZMK --- From 6227866e8c0672247eb747de3f3cb4d0ede875e4 Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Tue, 3 May 2022 02:54:38 +0000 Subject: [PATCH 7/7] feat(setup): Disallow split w/ wired controller. For now, disallow wired split combination during setup. --- docs/src/setup-script-generation-plugin/index.js | 1 + docs/src/templates/setup.ps1.mustache | 11 +++++++++++ docs/src/templates/setup.sh.mustache | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/docs/src/setup-script-generation-plugin/index.js b/docs/src/setup-script-generation-plugin/index.js index 908ac659..87e77141 100644 --- a/docs/src/setup-script-generation-plugin/index.js +++ b/docs/src/setup-script-generation-plugin/index.js @@ -30,6 +30,7 @@ function generateSetupScripts() { if (item.features?.includes("keys")) { agg.keyboards.push(item); } else { + item.usb_only = !item.outputs?.includes("ble"); agg.boards.push(item); } break; diff --git a/docs/src/templates/setup.ps1.mustache b/docs/src/templates/setup.ps1.mustache index 4af4d79d..54c5ae82 100644 --- a/docs/src/templates/setup.ps1.mustache +++ b/docs/src/templates/setup.ps1.mustache @@ -125,12 +125,23 @@ if ($keyboard_type -eq "shield") { {{id}} = "{{{name}}}"; {{/boards}} } + $boards_usb_only = [ordered]@{ + {{#boards}} + {{id}} = "{{usb_only}}"; + {{/boards}} + } Write-Host "$title" Write-Host "" Write-Host "MCU Board Selection:" $choice = Get-Choice-From-Options -Options $boards.values -Prompt $prompt + + if ($keyboard_split -eq "true" -and $($($boards_usb_only.values)[$choice]) -eq "true") { + Write-Host "Wired split is not yet supported by ZMK." + exit 1 + } + $shields = $keyboard_siblings $board = $($($boards.keys)[$choice]) $boards = ( $board ) diff --git a/docs/src/templates/setup.sh.mustache b/docs/src/templates/setup.sh.mustache index cec164a2..a8a2da22 100644 --- a/docs/src/templates/setup.sh.mustache +++ b/docs/src/templates/setup.sh.mustache @@ -120,6 +120,7 @@ if [ "$keyboard_shield" == "y" ]; then prompt="Pick an MCU board:" options=({{#boards}}"{{{name}}}" {{/boards}}) board_ids=({{#boards}}"{{id}}" {{/boards}}) + boards_usb_only=({{#boards}}"{{#usb_only}}y{{/usb_only}}{{^usb_only}}n{{/usb_only}}" {{/boards}}) echo "" echo "MCU Board Selection:" @@ -134,6 +135,12 @@ if [ "$keyboard_shield" == "y" ]; then echo "Invalid option. Try another one." continue fi + + if [ -n "${!keyboard_sibling_first}" ] && [ "${boards_usb_only[$board_index]}" = "y" ] ; then + echo "Wired split is not yet supported by ZMK." + exit 1 + fi + board_index=$(( $REPLY-1 )) board=${board_ids[$board_index]} board_title=${options[$board_index]}