Skip to content
 
 

Repository files navigation

Kinesis Advantage 360 Pro ZMK Config

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

The Kinesis GUI doesn't seem to be supported anymore. I have found this UI very useful.

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).

macOS specific

On macOS brew can be used to install the required components.

  • docker
  • colima can be used as the docker engine
brew install docker colima
colima start

Note: On Apple Silicon (ARM based) systems you need to make sure to start colima with the correct architecture for the container being used.

colima start --arch x86_64

Ubuntu/Debian specific

sudo apt-get install docker make

Building the firmware

  1. Execute make to build firmware for both halves or make left to only build firmware for the left hand side.
  2. Check the firmware directory for the latest firmware build. The first part of the filename is the timestamp when the firmware was built.

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.

Creating the docker container takes some time. Therefore make clean_firmware can be used to only clean firmware without removing the docker container. Similarly make clean_image can be used to remove the docker container without removing compiled firmware files.

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.

Note: Some operating systems wont always treat the drive as ejected after the settings-reset file is flashed or may throw a spurious error, this doesn't mean that the flashing process has failed.

Step-by-Step Firmware Flashing Instructions

  1. Obtain the desired Advantage360 Pro firmware files (“.uf2” format) from GitHub or Kinesis
  2. Connect the left module to your PC using the included USB cable. Then disconnect and power down the right module.
  3. Use a paperclip to quickly DOUBLE-CLICK the Bootloader Button shown on the left module to open the virtual drive. The Indicator LEDs with flash white and then change to solid green. The “ADV360PRO” removable drive will appear on your PC in the “file explorer” application (or equivalent).
  4. Copy and paste the left firmware file to the “ADV360PRO” drive. The keyboard will flash blue while installing the file and then disconnect the drive automatically.
  5. Turn the left module battery on and disconnect it from the PC. Work quickly and do not allow the left module to fall asleep while you are updating the right side (you can tap the Fn key on the left module to reset the 30 second sleep timer).
  6. Now connect the right module to your PC with the USB cable and repeat steps 3 and 4 with right module and the right firmware file.
  7. Once the right side stops flashing blue, hold the Mod key down and confirm both Layer LEDs light up green to confirm the keyboard is working properly.

Troubleshooting

  1. If the keyboard is not working after an update, power-cycle both modules several times.
  2. If it still doesn’t work, try again flashing the appropriate Settings Reset for the destination branch to both modules and then start back at Step 2.

Tips and Tricks

  1. ALWAYS connect/power-on the LEFT module FIRST, and disconnect/power-down the LEFT module LAST. You NEVER want the RIGHT side to lose track of the LEFT and flash red.
  2. The timing of the double-click on the Bootloader button can be tricky, so it may take a couple tries.
  3. If you don’t have a paperclip, you can use the shortcuts Mod + Hotkey 1 (left module) and Mod + Hotkey 3 (right module) to open the virtual drives.
  4. Do not open both virtual drives at once as it will be difficult to distinguish between them and you might install the wrong file on the wrong drive.
  5. Keystrokes and bootloader commands are disabled while the virtual drives are open or after a Settings Reset has been performed.
  6. Drives can only be updated over USB so you’ll need one of the included USB-C cables. Attempting to open the drive without a USB connection with result in an error. Click the bootloader button once or simply connect the keyboard to your computer with the USB cable.
  7. Firmware files always come in a matched set of left and right files. Both should be installed on their respective module consecutively. Do not install them on the wrong key module.
  8. Do not unplug your keyboard during a firmware update (while the LEDs are flashing blue)
  9. You can safely ignore “drive eject” warnings on macOS.
  10. As of 11-16-23, firmware files generated on GitHub will have unique file names containing the build date and commit number. The command Mod + V can be used to print-to-screen a “hash” with your firmware build date, branch number, and commit number.

Upgrading from V2 to V3

If you encounter a git conflict when updating your repository to V3.0 please follow the instructions on how to resolve it here.

Updating from V2.0 based firmwares to V3.0 based firmwares can be a rather complex process. There are reset files for every major firmware revision as well as documentation on the update process available here.

Versioning

Starting on 11/15/2023 the Advantage 360 Pro will now automatically record the compilation date, branch and Git commit hash in a macro that can be accessed with Mod+V. This will type out the following string: YYYYMMDD-XXXX-YYYYYY, where XXXX is the first 4 characters of the Git branch and YYYYYY is the Git commit hash. In addition to this the builds compiled by GitHub actions are now timestamped and also record the commit hash in the filename.

N-Key Rollover

By default this keyboard has NKRO enabled, however for compatibility reasons the higher ranges are not enabled. If you want to use F13-F24 or the INTL1-9 keys with NKRO enabled you can change CONFIG_ZMK_HID_KEYBOARD_EXTENDED_REPORT=n to CONFIG_ZMK_HID_KEYBOARD_EXTENDED_REPORT=y in adv360_left_defconfig

Battery reporting

By default reporting the battery level over BLE is disabled as this can cause some computers to spontaneously wake up repeatedly. If you'd like to enable this functionality change CONFIG_BT_BAS=n to CONFIG_BT_BAS=y in adv360_left_defconfig.

Modifier indicator color

The color of the CAPS/NUM/SCROLL LOCK indicator LEDs may be configured by specifying a hexadecimal RGB color code. For example, CONFIG_ZMK_RGB_UNDERGLOW_MOD_COLOR=0xFF0000 would give red indicator colors. In order to set the indicator color on both modules, ensure that both adv360_left_defconfig and adv360_right_defconfig have been updated.

Layer colors

A total of 32 layers are supported by ZMK, with the highest currently active layer displayed using the layer LEDs on each of the left and right modules. All possible colors are listed below; for the first 8 layers the same color is displayed on both modules. After that, only the right module color will cycle through until "rolling over", which will cause the left module color to change as well (and this then repeats). To avoid confusion, the black/off LED color is only used for layer 0.

Layer # L/R Layer # L/R Layer # L/R Layer # L/R
0 8 16 24
1 9 17 25
2 10 18 26
3 11 19 27
4 12 20 28
5 13 21 29
6 14 22 30
7 15 23 31

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. There is currently no beta branch available for testing.

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.

About

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

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages