/Adv360-Pro-ZMK-Official

Production repository for the all-new Advantage360 Professional using ZMK engine

Primary LanguageMakefileMIT LicenseMIT

Kinesis Advantage 360 Pro ZMK Config

edit for build

Modifying the keymap

The ZMK documentation covers both basic and advanced functionality and has a table of OS compatibility for keycodes. Please note that the RGB Underglow, Backlight and Power Management sections are not relevant to the Advantage 360 Pro's custom ZMK fork. For more information see this note

There is a web based GUI available for editing the keymap. It is available at https://kinesiscorporation.github.io/Adv360-Pro-GUI. This repository is also compatible with certain other web based ZMK keymap editors however they may have keycodes or behaviours that are not implemented on the 360 Pro and could cause unusual behaviour or build failures. Furthermore changes made on other keymap editors may not be compatible if one goes back to using the Kinesis GUI.

Certain ZMK features (e.g. combos) require knowing the exact key positions in the matrix. They can be found in both image and text format here

Building the Firmware with GitHub Actions

Setup

  1. Fork this repo.
  2. Enable GitHub Actions on your fork.

Build firmware

  1. Push a commit to trigger the build.
  2. Download the artifact.

Building the Firmware in a local container

Setup

Software

  • Either Podman or Docker is required, Podman is chosen if both are installed.
  • Make is also required

Windows specific

  • If compiling on Windows use WSL2 and Docker Docker Setup Guide.
  • Install make using sudo apt-get install make inside the WSL2 instance.
  • The repository can be cloned directly into the WSL2 instance or accessed through the C: mount point WSL provides by default (/mnt/c/path-to-repo).

Build firmware

  1. Execute make.
  2. Check the firmware directory for the latest firmware build.

Cleanup

The built docker container and compiled firmware files can be deleted with make clean. This might be necessary if you updated your fork from V2.0 to V3.0 and are encountering build failures.

Flashing firmware

Follow the programming instruction on page 8 of the Quick Start Guide to flash the firmware.

Overview

  1. Extract the firmwares from the archive downloaded from the GitHub build job (If using the cloud builder) or the firmware folder (If building locally).
  2. Connect the left side keyboard to USB.
  3. Press Mod+macro1 to put the left side into bootloader mode; it should attach to your computer as a USB drive.
  4. Copy left.uf2 to the USB drive and it will disconnect.
  5. Power off both keyboards (by unplugging them and making sure the switches are off).
  6. Turn on the left side keyboard with the switch.
  7. Connect the right side keyboard to USB to power it on.
  8. Press Mod+macro3 to put the right side into bootloader mode to attach it as a USB drive.
  9. Copy right.uf2 to the mounted drive.
  10. Unplug the right side keyboard and turn it back on.
  11. Enjoy!

Note: There are also physical reset buttons on both keyboards which can be used to enter and exit the bootloader mode. Their location is described in section 2.7 on page 9 in the User Manual and use is described in section 5.9 on page 14.

Upgrading from V2 to V3

If you are upgrading from V2 to V3, and if the flashing didn't work as expected (i.e. if you are unable to pair the keyboard via Bluetooth), then consider resetting both halves of the keyboard to its native state. Make sure to use the settings-reset.uf2 file from the V3 branch of this repository. After doing this, proceed with the flashing instructions above.

Bluetooth LE Privacy

By default this firmware ships with BT Privacy enabled (To read more about BT privacy see this article). This was done based off feedback from MacOS users as some Macs and all iOS devices use resolvable private addresses that they cycle between (the Apple documentation can be found here), and when the host cycled to a new address the Advantage 360 Pro would need re-pairing. It can cause issues with some operating systems and hardware setups. To disable BT Privacy change CONFIG_BT_PRIVACY=y to CONFIG_BT_PRIVACY=n in adv360_left_defconfig. Disabling this might necessitate re-pairing to the host.

Changelog

The changelog for both the config repo and the underlying ZMK fork that the config repo builds against can be found here.

Beta testing

The Advantage 360 Pro is always getting updates and refinements. If you are willing to beta test you can follow this guide from ZMK on how to change where your config repo points to. The west.yml file that is mentioned is located in config/. This link can take you to the file. Typically you will only need to change the revision: to match the beta branch. The current beta branch is adv360-z3.2-beta which is compatible with V3.0 config repositories however users must disable BT privacy.

Feedback on beta branches should be submitted as a GitHub issue on the base ZMK repository as opposed to this config repository

In the event of a major update the beta branch may not be compatible with the current mainline version of the config repository. If this is the case it will be detailed here along with instructions on how to update.

Note

By default this config repository references a customised version of ZMK 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.

Whilst the Advantage 360 Pro is compatible with base ZMK (The pull request to merge it can be seen here if you want to see how to implement it) 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.

Other support

Further support resources can be found on Kinesis.com:

In the event of a hardware issue it may be necessary to open a support ticket directly with Kinesis as opposed to a GitHub issue in this repository.