Skip to content

Commit

Permalink
v3 (#2)
Browse files Browse the repository at this point in the history
* V3.0 Update

refactor(board): Update to z3.2

Major update to underlying code requires change to the repo, brought in line with zmk pr for commonality, fixed indentation to comply with zmk pre-commit formatting reqs

Update settings-reset, change RGB modes

Add Update instructions, Assets folder

* Add instructions for upgrading from V2 to V3 in README (KinesisCorporation#197)

This commit adds a new section in the README.md file detailing instructions for users upgrading from V2 to V3.

* Add CHANGELOG (KinesisCorporation#221)

* Readme rewrite (KinesisCorporation#222)

---------

Co-authored-by: ReFil <31960031+ReFil@users.noreply.github.com>
Co-authored-by: Santhosh Kannan <santhoshknn@gmail.com>
  • Loading branch information
3 people authored Sep 14, 2023
1 parent 5d42247 commit bcb5920
Show file tree
Hide file tree
Showing 20 changed files with 472 additions and 267 deletions.
116 changes: 116 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Changelog
Here's all notable changes and commits to both the configuration repo and the base ZMK that the config repo builds against.

Many thanks to all those who have submitted issues and pull requests to make this firmware better!
## Config repo

28/7/2023 - Add a section in README explaining how to resolve connectivity issues after updating [#197](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/197)

### 6/7/2023 - V3.0 - Major refactor to board definition to match the upstream PR and comply with ZMK pre-commit requirements, Final changes to key matrix in hope of avoiding any future git conflicts, switch to zephyr Pinctrl API, Update the settings-reset file, switch to the zephyr 3.2 branch of the base ZMK repo, add instructions to resolve the conflicts upon updating (adv360-z3.2)

7/4/2023 - README improvements, adding instructions on flashing, links to the GUI editor and formatting cleanup [#128](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/128)

4/3/2023 - Add extra keys into matrix that point to nowhere, fixes spurious keypress issues when using USB3.1 cables [#114](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/114) [#116](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/116)


14/2/2023 - Disable ZMK logging by default to improve power consumption [#101](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/101)

25/1/2023 - Fix automatic OS detection to build properly when using the local builder on OS-X [#91](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/91)

16/1/2023 - Change formatting of keymap GUI files [#92](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/92)

21/11/2022 - Rewrite README to take into account new makefile structure [#57](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/57)

18/11/2022 - Add SELinux support to the makefile build sequence [#58](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/58)

14/11/2022 - Makefile cleanup to delete docker images on clean and run more seamlessly [#42](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/42)

30/10/2022 - Improve make clean so that it doesn't error when run without build firmware [#36](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/36)

26/10/2022 - Add support for building through podman as opposed to docker [#10](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/10)

23/10/2022 - Update GitHub actions to avoid deprecated actions [#33](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/33)

23/10/2022 - Add a makefile to reuse the docker image every time [#29](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/29)

20/10/2022 - Update settings reset file to fully erase peripheral data from the central

12/10/2022 - Fix local docker build after V2.0 update [#25](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/25)

11/10/2022 - Set manufacturer information over BLE [#28](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/28)

9/10/2022 - Cleanup of keymap [#24](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/)

7/10/2022 - Add USB VID, PID and Manufacturer information to config files

26/9/2022 - Revise local building script to avoid errors after V2.0 update

### 17/9/2022 - V2.0 - Changes to support Zephyr 3 (adv360-z3)

9/8/2022 - Remove extraneous keys from the GUI [#5](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/5)

13/6/2022 - Change default keymap, add default macros

23/5/2022 - Add local building with Docker, Add a README [#4](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/4)

6/5/2022 - Change LFCLK accuracy for improved reliability [#2](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/2)

### 3/3/2022 - V1.0 - Initial config repo release [#1](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/pull/1) (adv360-beta)

1/3/2022 - Initial publication of licence

## Base ZMK

There have beeen 3 branches of ZMK used for the 360 Pro so far.

| Branch | Date From | Date To | Config Branch |
| -------- | ------- |-------|-----|
| [adv360-beta](https://github.com/ReFil/zmk/tree/adv360-beta) | 1/3/2022 | 17/9/2022 | main (since deleted) |
| [adv360-z3](https://github.com/ReFil/zmk/tree/adv360-z3) | 17/9/2022 | 6/7/2023 | [V2.0](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/tree/V2.0) |
| [adv360-z3.2](https://github.com/ReFil/zmk/tree/adv360-z3.2) | 6/7/2023 | To date | [V3.0](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/tree/V3.0) |

### adv360-z3.2

31/7/2023 - Fix broken CI builds [#6](https://github.com/ReFil/zmk/pull/6)

30/5/2023 - Update RGB indicators code to match latest changes from pull requests

30/5/2023 - Merge latest HID indicators pull request alongside dependencies [#999](https://github.com/zmkfirmware/zmk/pull/999) [#1803](https://github.com/zmkfirmware/zmk/pull/1803)

30/5/2023 - Disable BLE battery reporting due to unreliability

30/5/2023 - Various fixes to allow compilation on zephyr 3.2

29/5/2023 - Merge latest upstream ZMK (Commit b276a3b)

### adv360-z3

27/3/2023 - Fix power on behaviour for RGB lighting

24/2/2023 - Fix indication leds for BLE profile 5

12/1/2023 - Merge latest upstream ZMK (Commit a82a0ec)

12/1/2023 - Fix pre-commit formatting

12/1/2023 - Fix a compile time warning by defining struct in header [#4](https://github.com/ReFil/zmk/pull/4)

25/11/2022 - Add extra BLE characteristic to fix HID light reporting on MacOS

19/10/2022 - Add BLE whitelist scanning to improve performance in environments with many BLE devices

19/10/2022 - Merge latest upstream ZMK (Commit c9eb631)

19/10/2022 - Fix initial power on lighting

2/10/2022 - Add ability to scale RGB and backlight brightness to improve battery life

13/9/2022 - Add custom lighting functionality on top of base ZMK

12/9/2022 - Merge HID indicators pull request [#999](https://github.com/zmkfirmware/zmk/pull/999) atop of base ZMK

11/9/2022 - Diverge from base ZMK (Commit 6124d25)


### adv360-beta
This repository has been deprecated for a year and as such will not be documented, it is advisable to upgrade to V3.0 as this has more features and improved reliability
25 changes: 22 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

## Modifying the keymap

There is a GUI for editing the keymap. It is available at https://kinesiscorporation.github.io/Adv360-Pro-GUI
[The ZMK documentation](https://zmk.dev/docs) 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](#note)

There is a GUI 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.

Certain ZMK features require knowing the exact key positions in the matrix. They can be found in both image and text format [here](assets/key-positions.md)

## Building the Firmware with GitHub Actions

Expand Down Expand Up @@ -38,13 +42,13 @@ There is a GUI for editing the keymap. It is available at https://kinesiscorpora

### Cleanup

The built docker container and compiled firmware files can be deleted with `make clean`.
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](https://kinesis-ergo.com/wp-content/uploads/Advantage360-Professional-QSG-v8-25-22.pdf) to flash the firmware.

### briefly
### Overview

1. Extract the firmwares from the downloaded archive.
1. Connect the left side keyboard to USB.
Expand All @@ -60,6 +64,21 @@ Follow the programming instruction on page 8 of the [Quick Start Guide](https://

> 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](https://kinesis-ergo.com/wp-content/uploads/Advantage360-ZMK-KB360-PRO-Users-Manual-v3-10-23.pdf) 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](https://kinesis-ergo.com/support/kb360pro/#firmware-updates) 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.

## Changelog

The changelog for both the config repo and the underlying ZMK fork that the config repo builds against can be found [here](CHANGELOG.md)

## Note

By default this config repository references [a customised version of ZMK](https://github.com/ReFil/zmk/tree/adv360-z3.2) with Advantage 360 Pro specific functionality and changes over [base ZMK](https://github.com/zmkfirmware/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.

Whilst the Advantage 360 Pro is compatible with base ZMK some of the more advanced features 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:
Expand Down
26 changes: 26 additions & 0 deletions assets/key-positions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Advantage 360 Pro key positions
## Image
![The key positions on the Advantage 360](key-positions.png)

## Code
```
#define KEYS_L 0 1 2 3 4 5 6 \
14 15 16 17 18 19 20 \
28 29 30 31 32 33 34 \
46 47 48 49 50 51 \
60 61 62 63 64
#define THUMBS_LEFT 35 36 \
52 \
65 66 67 \
#define KEYS_R 7 8 9 10 11 12 13 \
21 22 23 24 25 26 27 \
39 40 41 42 43 44 45 \
54 55 56 57 58 59 \
71 72 73 74 75
#define THUMBS_RIGHT 37 38 \
53 \
68 69 70 \
```
Binary file added assets/key-positions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions config/boards/arm/adv360/Kconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT

config BOARD_ENABLE_DCDC
bool "Enable DCDC mode"
select SOC_DCDC_NRF52X
default y
depends on BOARD_ADV360_LEFT || BOARD_ADV360_RIGHT
bool "Enable DCDC mode"
select SOC_DCDC_NRF52X
default y
depends on BOARD_ADV360_LEFT || BOARD_ADV360_RIGHT
10 changes: 5 additions & 5 deletions config/boards/arm/adv360/Kconfig.board
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#
# Copyright (c) 2021 Polarity Works
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
#

config BOARD_ADV360_LEFT
bool "adv360_left"
depends on SOC_NRF52840_QIAA
bool "adv360_left"
depends on SOC_NRF52840_QIAA

config BOARD_ADV360_RIGHT
bool "adv360_right"
depends on SOC_NRF52840_QIAA
bool "adv360_right"
depends on SOC_NRF52840_QIAA
30 changes: 16 additions & 14 deletions config/boards/arm/adv360/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -1,59 +1,61 @@
#
# Copyright (c) 2021 Polarity Works
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
#

if BOARD_ADV360_LEFT

config ZMK_KEYBOARD_NAME
default "Adv360 Pro"
config ZMK_KEYBOARD_NAME
default "Adv360 Pro"

config ZMK_SPLIT_ROLE_CENTRAL
default y
endif # BOARD_ADV360_LEFT

if BOARD_ADV360_RIGHT

config ZMK_KEYBOARD_NAME
default "Adv360 Pro rt"
config ZMK_KEYBOARD_NAME
default "Adv360 Pro rt"

endif # BOARD_ADV360_RIGHT


if BOARD_ADV360_LEFT || BOARD_ADV360_RIGHT

config BOARD
default "adv360"
default "adv360"

config ZMK_SPLIT
default y
default y

config SPI
bool
default y

config BT_CTLR
default BT
default BT

config ZMK_BLE
default y
default y

config ZMK_USB
default y
default y

if USB

config USB_NRFX
default y
default y

config USB_DEVICE_STACK
default y
default y

endif # USB

config ZMK_BATTERY_VOLTAGE_DIVIDER
default y
default y

config SPI
default y
default y



Expand Down
Loading

0 comments on commit bcb5920

Please sign in to comment.