KinesisCorporation / Adv360-Pro-ZMK

Production repository for the all-new Advantage360 Professional using ZMK engine
MIT License
427 stars 5.79k forks source link

Right half doesn't reconnect if keyboard is shut off while in bluetooth profile other than 1 #110

Closed FlippingBinary closed 8 months ago

FlippingBinary commented 1 year ago

This may be related to #65 and I posted a comment in that thread to describe a set of repeatable steps, which I've updated here based on another experience:

  1. Press [Mod] 3 (to switch to a Bluetooth profile other than 1).
  2. Count to 20 (or 10 if you're impatient).
  3. Flip the power switch of each module on simultaneously.
  4. Observe the right module's three LEDs blinking red.

I had initially thought this was some how associated with Bluetooth profiles that are undefined, but it happens in profile 2 for me as well, which is connected to my phone. After several attempts to get them to reconnect with synchronized power cycles, I was able to get them to reconnect through some unusual steps with my phone. I'm not sure which part caused them to reconnect with each other, but here they are:

  1. Disable Bluetooth on phone.
  2. Wait 10 seconds.
  3. Enable Bluetooth on phone and select the keyboard to connect.
  4. Wait for connection to fail.
  5. Power cycle both keyboards at the same time.
  6. Watch keyboard connect automatically via Bluetooth with both modules communicating again.

The alternative would be to press both reset buttons simultaneously. That works as well, and it's what I used when it was stuck in an unpaired Bluetooth profile.

I have no trouble turning them to reconnect if they're in profile 1.

Can someone else confirm if they are able to repeat this experience?

ReFil commented 1 year ago

Are you running out the box firmware or have you updated to the latest?

FlippingBinary commented 1 year ago

Are you running out the box firmware or have you updated to the latest?

I think I remember it being tricky to get them to connect on the out-of-the-box firmware, but I have been running the latest firmware for a few months. As of today, it was eight commits behind but the problem persisted after updating it.

However, I noticed the hard reset instructions in the user manual and decided to give that a try. Now the modules seem to connect to each other easily. When I read those instructions before, I had assumed that process was for users who modify their firmware beyond key bindings, but maybe it should be the first step before updating the firmware the first time.

ReFil commented 1 year ago

Flashing the settings reset firmware and updating to the latest base firmware (by rerunning your build action in github or make clean locally) will often help with connection instability

rpisarew commented 1 year ago

I have the same issue. I also had to flash the settings reset to get it working again, because I was not able to switch to profile one without the right half.

brokenalarms commented 1 year ago

same here, glad that I've found a way to reproduce and therefore get out of the stuck setting (reflashed to the latest firmware, same issue). I find if I'm starting up already set to the wrong bluetooth mode, and mash Mod+1 on startup, then I can successfully switch over before it otherwise would have died, and then go back to bluetooth mode 2 :P

KinesisCorporation commented 1 year ago

Thanks for sharing this. We tested several times and it didn't fail and we had a response all ready to go... and then one time it did and we could not get the keyboard to resync. It seems like it might be a specific timing of the power-cycle.

To restore the connection we had success disabling the PC Bluetooth before powering up the keyboard. Not ideal, but a decently quick workaround. Can you confirm?

We'll investigate and its very possible this will be resolved with the Direct Advertising update that is already in the works.

If anyone can boil the repro steps down even further, please do let us know.

cc @ReFil

FlippingBinary commented 1 year ago

Thanks for sharing this. We tested several times and it didn't fail and we had a response all ready to go... and then one time it did and we could not get the keyboard to resync. It seems like it might be a specific timing of the power-cycle.

That's what I thought at first too, but the problem hasn't reoccurred since I used the reset image. I wonder if it's a problem with either corrupt settings or a slight incompatibility between the way firmware versions format the settings.

To restore the connection we had success disabling the PC Bluetooth before powering up the keyboard. Not ideal, but a decently quick workaround. Can you confirm?

I can confirm that this did work for me when I tried before, but I have not had the opportunity to try since the settings reset fixed it.

We'll investigate and its very possible this will be resolved with the Direct Advertising update that is already in the works.

Sounds like good news. I love the keyboard other than that trouble with Bluetooth.

brokenalarms commented 1 year ago

Yeah it still happened for me after a fresh flash. Was very frustrating multiple resets of each half, and the mashing Mod+1 made no difference either. If I deleted the Bluetooth profile on my Mac, it would boot up ok, allow pairing... Then when you choose pair, it will pair (adds keyboard to list of connected devices) but typing doesn't work. Then switch off and on and you'll find it still unpaired again, with the right side flashing again.

I'm not sure how I got it to work but I think that yes it might actually have been removing the device, switching off Bluetooth and restarting with Bluetooth off before re-pairing.

JohnTKelly commented 1 year ago

I have this issue as well. Ideally it gets fixed proper. In the meantime, does switching back to BT profile 1 before powering down prevent getting into the bad state? Might be a nice temporary workaround.

itsthejoker commented 1 year ago

I just hit this myself while troubleshooting a bluetooth connection issue w/ support, and I can confirm that hitting the reset button on both sides at the same time does let them reconnect (though sometimes it does take a few tries).

brokenalarms commented 1 year ago

Tried that many times and didn't fix it for me. I had to reset the image.

On Fri, Mar 31, 2023 at 8:21 AM Joe Kaufeld @.***> wrote:

I just hit this myself while troubleshooting a bluetooth connection issue w/ support, and I can confirm that hitting the reset button on both sides at the same time does let them reconnect (though sometimes it does take a few tries).

— Reply to this email directly, view it on GitHub https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/110#issuecomment-1492114431, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYLYCSVYRRWIZ7HLMASYALW63ZAJANCNFSM6AAAAAAVGMUECY . You are receiving this because you commented.Message ID: @.***>

brokenalarms commented 1 year ago

any updates on this issue? I had used the keyboard since reflashing for about a week (judging from issue last lodged), now have the same thing again. Suddenly stopped working on all 3 computers its synced to, despite zero changes.

If I switch BT off and on while the keyboard is off, then turn the keyboard on, I get this instead:

image

And generally when I try to click 'connect' to either keyboard, it loads, connects, then the button just reappears with 'connect' again and the keyboard continues flashing in pairing mode.

restarting computer / power cycling bluetooth / turning off and on / resetting with pin make no difference. Works fine if physically plugged in. Looks like I'm going to have to flash again just to get this working in BT, but not really a solution since with the bug still there I have no idea when it will just happen again.

brokenalarms commented 1 year ago

https://user-images.githubusercontent.com/7388170/231345542-ee43fcb5-71fb-49c5-9446-fe93b93f1c53.mov

ReFil commented 1 year ago

Is the keyboard is pairing mode (fast profile led flashing) or just disconnected (slow profile led flashing)?

KinesisCorporation commented 1 year ago

@brokenalarms

It sounds like we're at the point where we should swap out your keyboard for a new one so we can try to understand whether this is a ZMK problem, a your-setup problem, or a one-off hardware failure.

Please submit a trouble ticket here and provide link to this thread. https://kinesis-ergo.com/support/contact-a-technician/

brokenalarms commented 1 year ago

actually, it was disconnected. Confusing since the device still appears as a nearby unconnected device with a 'connect' option when not in pairing mode, and when paired leaves this list once it is 'properly' connected as expected.

Given that this is just the end state of a general need to reset BT that happens every few weeks, I'll take the advice and submit a ticket thanks @KinesisCorporation .

Matt-Herndon commented 1 year ago

I think this may be happening with my keyboard as well. I was just experiencing fast red flashing on the right board. I did quick succession resets left then right by using paper clips to try and fix the issue because this had worked in the past. Sadly it did not work this time after multiple attempts. Going into my mac and explicitly forgetting the keyboard did allow a new quick reset to work though. Now the keyboard is working with its left side plugged into my computer and the right side i being wireless.

FlippingBinary commented 1 year ago

Just chiming back in to say that I haven't had any of these problems since flashing the settings reset firmware and updating to the latest base firmware, as described above. I highly recommend it to anyone who is experiencing intermittent connectivity issues.

brokenalarms commented 1 year ago

This was happening for me on the latest firmware, and @KinesisCorporation had also reproduced on the latest. So still very much alive. Logging back in to report it happened again this morning - right keyboard flashing, no idea how to fix, restarted keyboard multiple times, tried plugged in, etc. Fortunately this time I had the computer I'd previously been using available (on profile 1), and it seemed that if I started it up with that computer on, it got unstuck and I could at least pair it again to the current computer (on profile 2) - but I needed to first remove/forget/cycle bluetooth and re-add the device in order for it to work.

FlippingBinary commented 1 year ago

@brokenalarms I wasn't trying to suggest the problem doesn't exist for anyone anymore, only that the critical step for me was to flash the settings reset firmware. It is a special firmware that only resets the internal settings so a regular firmware will have a fresh slate when it is flashed over the settings reset firmware. I had previously thought that flashing the latest firmware would be the most thorough way to reset the keyboard, but it wasn't. If you have only been flashing regular firmware, I highly recommend giving the settings reset firmware a try before flashing the latest firmware.

Here are the current instructions, according to the support website:

Settings Reset – If you are having trouble with your keyboard you can perform a “Settings Reset” to return the keyboard to its native state, and then install a fresh copy of firmware.

  1. Download the “Settings Reset” and Default Firmware Files below (3 total .uf2 files).
  2. Follow the instructions in the guide at left but install the settings-reset.uf2 file on BOTH the left and right “ADV360PRO” drives. Note: The keyboard will be disabled once reset until new firmware is installed.
  3. Then follow the instructions in the same guide to install the left and right side firmware files. Note: After firmware installation the left and right modules should re-sync with each other automatically. If they do not, try power-cycling them at the same time.
KinesisCorporation commented 1 year ago

Hi folks,

We've just posted a "core ZMK 3.2" firmware file for the Adv360 Pro. This has none of the custom code that was developed specifically for the 360 (eg RGB indicators).

For those still having connectivity problems, this would be a great file to install and test drive for a while to see if persistent issues are resolved or not. And then report back here with the results.

You must flash the Settings Reset file on BOTH modules before installing this firmware since its a "MAJOR" update

https://kinesis-ergo.com/download/advantage360-professional-core-zmk-3-2/

cvcore commented 1 year ago

Hi @KinesisCorporation , I have the same issue as OP and have already tried the ZMK3.2-vanilla firmware in https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/110#issuecomment-1533761857, but unfortunately I can still observe the old behavior, with the right keyboard accidentally failing to register with the left one during poweron.

However, I can observe when there are multiple bluetooth devices nearby the keyboard - in my case two laptops and several phones - the chance of the registration failure increases. So it seems the keyboard is somehow very sensitive to its neighboring devices.

One explanation of this behavior could be due to CONFIG_BT_MAX_CONN (with default value 5 for LH module, see [4]) restricting the maximum number of communication channel the bluetooth module could simultaneously establish (see ref. [1]-[3] for more info on bluetooth behavior of zmk). So when there are multiple neighboring devices during keyboard power-on, the LH keyboard may accidentally pick already 5 devices before the RH module, blocking it from connection.

So as a temporary solution, I changed the settings to

CONFIG_BT_MAX_CONN=16
CONFIG_BT_MAX_PAIRED=16

in my configs/arm/adv360/adv360_left_config, and the problem seems to be gone now. Note the RH module setting should be kept default (set to 1 for both variables). The exact value 16 doens't matter, as long as it's sufficiently large and is allowed by the hardware.

Maybe you can try this as well @FlippingBinary and let me know if it works.

[1] https://zmk.dev/docs/behaviors/bluetooth [2] https://docs.zephyrproject.org/3.0.0/reference/kconfig/CONFIG_BT_MAX_CONN.html?highlight=config_bt_max_conn [3] https://docs.zephyrproject.org/3.0.0/reference/kconfig/CONFIG_BT_MAX_PAIRED.html#std-kconfig-CONFIG_BT_MAX_PAIRED [4] https://zmk.dev/docs/config/system

Not forget to mention, here are my build logs:

Zephyr version: 3.0.0 Python3: /usr/bin/python3.8 host-tools: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2) west 0.14.0

ZMK build logs ```` /usr/local/bin/docker build --tag zmk --file Dockerfile . [+] Building 1.7s (13/13) FINISHED => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 292B 0.0s => [internal] load metadata for docker.io/zmkfirmware/zmk-build-arm:stable 1.7s => [auth] zmkfirmware/zmk-build-arm:pull token for registry-1.docker.io 0.0s => [1/7] FROM docker.io/zmkfirmware/zmk-build-arm:stable@sha256:1fa70cf58594942f90a96059a3b135ac1843af3b4fb6a46c7bb39f29f9de661b 0.0s => [internal] load build context 0.0s => => transferring context: 118B 0.0s => CACHED [2/7] WORKDIR /app 0.0s => CACHED [3/7] COPY config/west.yml config/west.yml 0.0s => CACHED [4/7] RUN west init -l config 0.0s => CACHED [5/7] RUN west update 0.0s => CACHED [6/7] RUN west zephyr-export 0.0s => CACHED [7/7] COPY bin/build.sh ./ 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:e9725d74be3ba13798a1fda23b205c97b3d37d1593583f240558a604647ee109 0.0s => => naming to docker.io/library/zmk 0.0s /usr/local/bin/docker run --rm -it --name zmk \ -v /Users/***/***/Adv360-Pro-ZMK/firmware:/app/firmware \ -v /Users/***/***/Adv360-Pro-ZMK/config:/app/config:ro \ -e TIMESTAMP=20230508122426 \ zmk -- west build: generating a build system Including boilerplate (Zephyr base): /app/zephyr/cmake/app/boilerplate.cmake -- Application: /app/zmk/app -- Adding ZMK config directory as board root: /app/config -- ZMK Config directory: /app/config -- Using keymap file: /app/config/adv360_left.keymap -- Zephyr version: 3.0.0 (/app/zephyr) -- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter -- Found west (found suitable version "0.14.0", minimum required is "0.7.1") -- Board: adv360_left -- Cache files will be written to: /root/.cache/zephyr -- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK -- Found host-tools: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2) -- Found dtc: /opt/zephyr-sdk-0.15.2/sysroots/aarch64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6") -- Found toolchain: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2) -- Found BOARD.dts: /app/config/boards/arm/adv360/adv360_left.dts -- Found devicetree overlay: /app/config/adv360_left.keymap -- Generated zephyr.dts: /app/build/left/zephyr/zephyr.dts -- Generated devicetree_unfixed.h: /app/build/left/zephyr/include/generated/devicetree_unfixed.h -- Generated device_extern.h: /app/build/left/zephyr/include/generated/device_extern.h -- Including generated dts.cmake file: /app/build/left/zephyr/dts.cmake Parsing /app/zmk/app/Kconfig Loaded configuration '/app/config/boards/arm/adv360/adv360_left_defconfig' Merged configuration '/app/zmk/app/prj.conf' Configuration saved to '/app/build/left/zephyr/.config' Kconfig header saved to '/app/build/left/zephyr/include/generated/autoconf.h' -- The C compiler identification is GNU 12.1.0 -- The CXX compiler identification is GNU 12.1.0 -- The ASM compiler identification is GNU -- Found assembler: /opt/zephyr-sdk-0.15.2/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -- Configuring done CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1053 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1265 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1322 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done -- Build files have been written to: /app/build/left -- west build: building application [1/327] Preparing syscall dependency handling [2/327] Generating include/generated/version.h -- Zephyr version: 3.0.0 (/app/zephyr), build: 3861c95d11e9 [149/327] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c: In function 'z_arm_configure_dynamic_mpu_regions': /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' In file included from /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:13: /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [317/327] Linking C executable zephyr/zephyr_pre0.elf [321/327] Linking C executable zephyr/zephyr_pre1.elf [327/327] Linking C executable zephyr/zmk.elf Memory region Used Size Region Size %age Used FLASH: 213780 B 792 KB 26.36% SRAM: 83942 B 256 KB 32.02% IDT_LIST: 0 GB 2 KB 0.00% Converting to uf2, output size: 428032, start address: 0x26000 Wrote 428032 bytes to zmk.uf2 CONFIG_ZMK_KEYBOARD_NAME="Adv360 Pro" CONFIG_USB_DEVICE_PRODUCT="Adv360 Pro" CONFIG_BT_DEVICE_NAME="Adv360 Pro" CONFIG_USB_DEVICE_VID=0x29EA CONFIG_USB_DEVICE_PID=0x0362 CONFIG_USB_DEVICE_MANUFACTURER="Kinesis Corporation" CONFIG_BT_DIS_PNP_VID=0x1D50 CONFIG_BT_DIS_PNP_PID=0x615E CONFIG_BT_DIS_MODEL="Adv360 Pro" CONFIG_BT_DIS_MANUF="Kinesis Corporation" CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y CONFIG_ZMK_HID_CONSUMER_REPORT_SIZE=6 CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y CONFIG_ZMK_USB=y CONFIG_USB_NUMOF_EP_WRITE_RETRIES=10 CONFIG_USB_HID_POLL_INTERVAL_MS=1 CONFIG_ZMK_BLE=y CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_ZMK_BLE_THREAD_STACK_SIZE=512 CONFIG_ZMK_BLE_THREAD_PRIORITY=5 CONFIG_ZMK_BLE_KEYBOARD_REPORT_QUEUE_SIZE=20 CONFIG_ZMK_BLE_CONSUMER_REPORT_QUEUE_SIZE=5 CONFIG_BT_DEVICE_APPEARANCE=961 CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6 CONFIG_BT_PERIPHERAL_PREF_MAX_INT=12 CONFIG_BT_PERIPHERAL_PREF_LATENCY=30 CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400 CONFIG_ZMK_SPLIT=y CONFIG_ZMK_SPLIT_ROLE_CENTRAL=y CONFIG_ZMK_SPLIT_BLE=y CONFIG_ZMK_SPLIT_BLE_CENTRAL_POSITION_QUEUE_SIZE=5 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_RUN_STACK_SIZE=512 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_RUN_QUEUE_SIZE=5 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_LED_STACK_SIZE=512 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_LED_QUEUE_SIZE=5 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_BL_STACK_SIZE=512 CONFIG_ZMK_BLE_SPLIT_CENTRAL_SPLIT_BL_QUEUE_SIZE=5 CONFIG_BT_MAX_PAIRED=16 CONFIG_BT_MAX_CONN=16 CONFIG_BT_FILTER_ACCEPT_LIST=y CONFIG_ZMK_RGB_UNDERGLOW=y CONFIG_SPI=y CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y CONFIG_ZMK_RGB_UNDERGLOW_BRT_MIN=0 CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX=100 CONFIG_ZMK_RGB_UNDERGLOW_BRT_SCALE=1 CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=0 CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=100 CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=100 CONFIG_ZMK_RGB_UNDERGLOW_SPD_START=3 CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=4 CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y CONFIG_ZMK_BACKLIGHT=y CONFIG_ZMK_BACKLIGHT_BRT_STEP=20 CONFIG_ZMK_BACKLIGHT_BRT_START=100 CONFIG_ZMK_BACKLIGHT_BRT_SCALE=25 CONFIG_ZMK_BACKLIGHT_ON_START=y CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y CONFIG_ZMK_IDLE_TIMEOUT=30000 CONFIG_ZMK_EXT_POWER=y CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=4 CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=5 CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=4 CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=64 CONFIG_ZMK_MACRO_DEFAULT_WAIT_MS=15 CONFIG_ZMK_MACRO_DEFAULT_TAP_MS=30 CONFIG_ZMK_USB_INIT_PRIORITY=50 CONFIG_ZMK_BLE_INIT_PRIORITY=50 CONFIG_ZMK_KSCAN_EVENT_QUEUE_SIZE=4 CONFIG_ZMK_SETTINGS_SAVE_DEBOUNCE=29500 CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_KERNEL_BIN_NAME="zmk" CONFIG_REBOOT=y CONFIG_USB_DEVICE_STACK=y CONFIG_SENSOR=y CONFIG_GPIO=y CONFIG_NET_CONFIG_IEEE802154_DEV_NAME="" CONFIG_ADC_INIT_PRIORITY=50 CONFIG_GPIO_INIT_PRIORITY=40 CONFIG_BT_HCI_VS_EXT=y CONFIG_BOARD="adv360" CONFIG_BT_CTLR=y CONFIG_USB_NRFX=y CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER=y CONFIG_SOC="nRF52840_QIAA" CONFIG_SOC_SERIES="nrf52" CONFIG_NUM_IRQS=48 CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=32768 CONFIG_CLOCK_CONTROL_INIT_PRIORITY=30 CONFIG_ROM_START_OFFSET=0 CONFIG_PM=y CONFIG_SOC_HAS_TIMING_FUNCTIONS=y CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT=y CONFIG_CLOCK_CONTROL=y CONFIG_NRF_RTC_TIMER=y CONFIG_SYS_CLOCK_TICKS_PER_SEC=32768 CONFIG_BUILD_OUTPUT_HEX=y CONFIG_FLASH_SIZE=1024 CONFIG_FLASH_BASE_ADDRESS=0x0 CONFIG_TEST_EXTRA_STACKSIZE=0 CONFIG_TINYCRYPT=y CONFIG_MP_NUM_CPUS=1 CONFIG_ZEPHYR_CANOPENNODE_MODULE=y CONFIG_ZEPHYR_HAL_GIGADEVICE_MODULE=y CONFIG_ZEPHYR_HAL_NORDIC_MODULE=y CONFIG_HAS_NORDIC_DRIVERS=y CONFIG_NRF_802154_SOURCE_HAL_NORDIC=y CONFIG_HAS_NRFX=y CONFIG_NRFX_CLOCK=y CONFIG_NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED=y CONFIG_NRFX_GPIOTE=y CONFIG_NRFX_GPIOTE_NUM_OF_EVT_HANDLERS=1 CONFIG_NRFX_NVMC=y CONFIG_NRFX_POWER=y CONFIG_NRFX_PWM=y CONFIG_NRFX_PWM0=y CONFIG_NRFX_SPIM=y CONFIG_NRFX_SPIM1=y CONFIG_NRFX_SYSTICK=y CONFIG_NRFX_USBD=y CONFIG_ZEPHYR_HAL_RPI_PICO_MODULE=y CONFIG_ZEPHYR_LZ4_MODULE=y CONFIG_ZEPHYR_MBEDTLS_MODULE=y CONFIG_ZEPHYR_NANOPB_MODULE=y CONFIG_ZEPHYR_TFLITE_MICRO_MODULE=y CONFIG_ZEPHYR_TRACERECORDER_MODULE=y CONFIG_ZEPHYR_ZSCILIB_MODULE=y CONFIG_ZMK_KSCAN_GPIO_DRIVER=y CONFIG_ZMK_KSCAN_GPIO_MATRIX=y CONFIG_ZMK_KSCAN_MATRIX_WAIT_BEFORE_INPUTS=0 CONFIG_ZMK_KSCAN_MATRIX_WAIT_BETWEEN_OUTPUTS=0 CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=-1 CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=-1 CONFIG_ZMK_KSCAN_INIT_PRIORITY=40 CONFIG_ZMK_BATTERY=y CONFIG_ZEPHYR_DRIVERS_MODULE=y CONFIG_HAS_CMSIS_CORE=y CONFIG_HAS_CMSIS_CORE_M=y CONFIG_TINYCRYPT_ECC_DH=y CONFIG_TINYCRYPT_AES=y CONFIG_TINYCRYPT_AES_CMAC=y CONFIG_BOARD_ADV360_LEFT=y CONFIG_BOARD_ENABLE_DCDC=y CONFIG_SOC_SERIES_NRF52X=y CONFIG_CPU_HAS_ARM_MPU=y CONFIG_HAS_SWO=y CONFIG_SOC_FAMILY="nordic_nrf" CONFIG_SOC_FAMILY_NRF=y CONFIG_HAS_HW_NRF_ACL=y CONFIG_HAS_HW_NRF_CC310=y CONFIG_HAS_HW_NRF_CCM=y CONFIG_HAS_HW_NRF_CCM_LFLEN_8BIT=y CONFIG_HAS_HW_NRF_CLOCK=y CONFIG_HAS_HW_NRF_COMP=y CONFIG_HAS_HW_NRF_ECB=y CONFIG_HAS_HW_NRF_EGU0=y CONFIG_HAS_HW_NRF_EGU1=y CONFIG_HAS_HW_NRF_EGU2=y CONFIG_HAS_HW_NRF_EGU3=y CONFIG_HAS_HW_NRF_EGU4=y CONFIG_HAS_HW_NRF_EGU5=y CONFIG_HAS_HW_NRF_GPIO0=y CONFIG_HAS_HW_NRF_GPIO1=y CONFIG_HAS_HW_NRF_GPIOTE=y CONFIG_HAS_HW_NRF_I2S=y CONFIG_HAS_HW_NRF_LPCOMP=y CONFIG_HAS_HW_NRF_MWU=y CONFIG_HAS_HW_NRF_NFCT=y CONFIG_HAS_HW_NRF_NVMC_PE=y CONFIG_HAS_HW_NRF_PDM=y CONFIG_HAS_HW_NRF_POWER=y CONFIG_HAS_HW_NRF_PPI=y CONFIG_HAS_HW_NRF_PWM0=y CONFIG_HAS_HW_NRF_PWM1=y CONFIG_HAS_HW_NRF_PWM2=y CONFIG_HAS_HW_NRF_PWM3=y CONFIG_HAS_HW_NRF_QDEC=y CONFIG_HAS_HW_NRF_QSPI=y CONFIG_HAS_HW_NRF_RADIO_BLE_2M=y CONFIG_HAS_HW_NRF_RADIO_TX_PWR_HIGH=y CONFIG_HAS_HW_NRF_RADIO_BLE_CODED=y CONFIG_HAS_HW_NRF_RADIO_IEEE802154=y CONFIG_HAS_HW_NRF_RNG=y CONFIG_HAS_HW_NRF_RTC0=y CONFIG_HAS_HW_NRF_RTC1=y CONFIG_HAS_HW_NRF_RTC2=y CONFIG_HAS_HW_NRF_SAADC=y CONFIG_HAS_HW_NRF_SPI0=y CONFIG_HAS_HW_NRF_SPI1=y CONFIG_HAS_HW_NRF_SPI2=y CONFIG_HAS_HW_NRF_SPIM0=y CONFIG_HAS_HW_NRF_SPIM1=y CONFIG_HAS_HW_NRF_SPIM2=y CONFIG_HAS_HW_NRF_SPIM3=y CONFIG_HAS_HW_NRF_SPIS0=y CONFIG_HAS_HW_NRF_SPIS1=y CONFIG_HAS_HW_NRF_SPIS2=y CONFIG_HAS_HW_NRF_SWI0=y CONFIG_HAS_HW_NRF_SWI1=y CONFIG_HAS_HW_NRF_SWI2=y CONFIG_HAS_HW_NRF_SWI3=y CONFIG_HAS_HW_NRF_SWI4=y CONFIG_HAS_HW_NRF_SWI5=y CONFIG_HAS_HW_NRF_TEMP=y CONFIG_HAS_HW_NRF_TIMER0=y CONFIG_HAS_HW_NRF_TIMER1=y CONFIG_HAS_HW_NRF_TIMER2=y CONFIG_HAS_HW_NRF_TIMER3=y CONFIG_HAS_HW_NRF_TIMER4=y CONFIG_HAS_HW_NRF_TWI0=y CONFIG_HAS_HW_NRF_TWI1=y CONFIG_HAS_HW_NRF_TWIM0=y CONFIG_HAS_HW_NRF_TWIM1=y CONFIG_HAS_HW_NRF_TWIS0=y CONFIG_HAS_HW_NRF_TWIS1=y CONFIG_HAS_HW_NRF_UART0=y CONFIG_HAS_HW_NRF_UARTE0=y CONFIG_HAS_HW_NRF_UARTE1=y CONFIG_HAS_HW_NRF_USBD=y CONFIG_HAS_HW_NRF_WDT=y CONFIG_NRF_HW_TIMER0_RESERVED=y CONFIG_NRF_HW_RTC0_RESERVED=y CONFIG_NRF_HW_RTC1_RESERVED=y CONFIG_SOC_NRF52840=y CONFIG_SOC_NRF52840_QIAA=y CONFIG_SOC_DCDC_NRF52X=y CONFIG_GPIO_AS_PINRESET=y CONFIG_NRF_ENABLE_ICACHE=y CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0 CONFIG_NRF_ACL_FLASH_REGION_SIZE=0 CONFIG_NRF_APPROTECT_USE_UICR=y CONFIG_SOC_COMPATIBLE_NRF=y CONFIG_SOC_COMPATIBLE_NRF52X=y CONFIG_ARCH="arm" CONFIG_CPU_CORTEX=y CONFIG_CPU_CORTEX_M=y CONFIG_ISA_THUMB2=y CONFIG_ASSEMBLER_ISA_THUMB2=y CONFIG_COMPILER_ISA_THUMB2=y CONFIG_STACK_ALIGN_DOUBLE_WORD=y CONFIG_PLATFORM_SPECIFIC_INIT=y CONFIG_FAULT_DUMP=2 CONFIG_FP16=y CONFIG_FP16_IEEE=y CONFIG_CPU_CORTEX_M4=y CONFIG_CPU_CORTEX_M_HAS_SYSTICK=y CONFIG_CPU_CORTEX_M_HAS_DWT=y CONFIG_CPU_CORTEX_M_HAS_BASEPRI=y CONFIG_CPU_CORTEX_M_HAS_VTOR=y CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS=y CONFIG_ARMV7_M_ARMV8_M_MAINLINE=y CONFIG_ARMV7_M_ARMV8_M_FP=y CONFIG_GEN_ISR_TABLES=y CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y CONFIG_GEN_IRQ_VECTOR_TABLE=y CONFIG_ARM_MPU=y CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE=32 CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE=32 CONFIG_ARM=y CONFIG_ARCH_IS_SET=y CONFIG_SRAM_SIZE=256 CONFIG_SRAM_BASE_ADDRESS=0x20000000 CONFIG_PRIVILEGED_STACK_SIZE=1024 CONFIG_KOBJECT_TEXT_AREA=256 CONFIG_KOBJECT_DATA_AREA_RESERVE_EXTRA_PERCENT=100 CONFIG_KOBJECT_RODATA_AREA_EXTRA_BYTES=16 CONFIG_GEN_PRIV_STACKS=y CONFIG_GEN_SW_ISR_TABLE=y CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0 CONFIG_GEN_IRQ_START_VECTOR=0 CONFIG_ARCH_HAS_SINGLE_THREAD_SUPPORT=y CONFIG_ARCH_HAS_TIMING_FUNCTIONS=y CONFIG_ARCH_HAS_STACK_PROTECTION=y CONFIG_ARCH_HAS_USERSPACE=y CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT=y CONFIG_ARCH_HAS_RAMFUNC_SUPPORT=y CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION=y CONFIG_ARCH_SUPPORTS_COREDUMP=y CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT=y CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO=y CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE=y CONFIG_ARCH_HAS_THREAD_ABORT=y CONFIG_CPU_HAS_FPU=y CONFIG_CPU_HAS_MPU=y CONFIG_MPU=y CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT=y CONFIG_SRAM_REGION_PERMISSIONS=y CONFIG_TOOLCHAIN_HAS_BUILTIN_FFS=y CONFIG_MULTITHREADING=y CONFIG_NUM_COOP_PRIORITIES=16 CONFIG_NUM_PREEMPT_PRIORITIES=15 CONFIG_MAIN_THREAD_PRIORITY=0 CONFIG_COOP_ENABLED=y CONFIG_PREEMPT_ENABLED=y CONFIG_PRIORITY_CEILING=-127 CONFIG_NUM_METAIRQ_PRIORITIES=0 CONFIG_MAIN_STACK_SIZE=1024 CONFIG_IDLE_STACK_SIZE=320 CONFIG_ISR_STACK_SIZE=2048 CONFIG_THREAD_STACK_INFO=y CONFIG_ERRNO=y CONFIG_SCHED_DUMB=y CONFIG_WAITQ_DUMB=y CONFIG_BOOT_DELAY=0 CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1 CONFIG_ATOMIC_OPERATIONS_BUILTIN=y CONFIG_TIMESLICING=y CONFIG_TIMESLICE_SIZE=0 CONFIG_TIMESLICE_PRIORITY=0 CONFIG_POLL=y CONFIG_NUM_MBOX_ASYNC_MSGS=10 CONFIG_KERNEL_MEM_POOL=y CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN=y CONFIG_SWAP_NONATOMIC=y CONFIG_SYS_CLOCK_EXISTS=y CONFIG_TIMEOUT_64BIT=y CONFIG_SYS_CLOCK_MAX_TIMEOUT_DAYS=365 CONFIG_XIP=y CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30 CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40 CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50 CONFIG_APPLICATION_INIT_PRIORITY=90 CONFIG_STACK_POINTER_RANDOM=0 CONFIG_TICKLESS_KERNEL=y CONFIG_TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE=y CONFIG_HAS_DTS=y CONFIG_HAS_DTS_GPIO=y CONFIG_HAS_SEGGER_RTT=y CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0 CONFIG_TICKLESS_CAPABLE=y CONFIG_SYSTEM_CLOCK_WAIT_FOR_STABILITY=y CONFIG_RISCV_MACHINE_TIMER_SYSTEM_CLOCK_DIVIDER=0 CONFIG_ENTROPY_GENERATOR=y CONFIG_ENTROPY_INIT_PRIORITY=50 CONFIG_ENTROPY_NRF5_RNG=y CONFIG_ENTROPY_NRF5_BIAS_CORRECTION=y CONFIG_ENTROPY_NRF5_THR_POOL_SIZE=8 CONFIG_ENTROPY_NRF5_THR_THRESHOLD=4 CONFIG_ENTROPY_NRF5_ISR_POOL_SIZE=16 CONFIG_ENTROPY_NRF5_ISR_THRESHOLD=12 CONFIG_ENTROPY_HAS_DRIVER=y CONFIG_GPIO_NRFX=y CONFIG_SPI_INIT_PRIORITY=70 CONFIG_SPI_COMPLETION_TIMEOUT_TOLERANCE=200 CONFIG_SPI_NRFX=y CONFIG_SPI_1_NRF_SPIM=y CONFIG_SPI_1_NRF_ORC=0xff CONFIG_SPI_NRFX_RAM_BUFFER_SIZE=8 CONFIG_PWM=y CONFIG_PWM_NRFX=y CONFIG_ADC=y CONFIG_ADC_CONFIGURABLE_INPUTS=y CONFIG_ADC_NRFX_SAADC=y CONFIG_CLOCK_CONTROL_NRF=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y CONFIG_CLOCK_CONTROL_NRF_ACCURACY=500 CONFIG_FLASH_HAS_DRIVER_ENABLED=y CONFIG_FLASH_HAS_PAGE_LAYOUT=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_INIT_PRIORITY=50 CONFIG_SOC_FLASH_NRF=y CONFIG_SOC_FLASH_NRF_RADIO_SYNC_TICKER=y CONFIG_SENSOR_INIT_PRIORITY=90 CONFIG_TMP112_FULL_SCALE_RUNTIME=y CONFIG_TMP112_SAMPLING_FREQUENCY_RUNTIME=y CONFIG_USB_DEVICE_DRIVER=y CONFIG_USB_DEVICE_REMOTE_WAKEUP=y CONFIG_USB_NRFX_EVT_QUEUE_SIZE=32 CONFIG_USB_NRFX_WORK_QUEUE_STACK_SIZE=1024 CONFIG_USB_NRFX_ATTACHED_EVENT_DELAY=0 CONFIG_LED_STRIP=y CONFIG_LED_STRIP_INIT_PRIORITY=90 CONFIG_LED_STRIP_RGB_SCRATCH=y CONFIG_WS2812_STRIP=y CONFIG_WS2812_STRIP_SPI=y CONFIG_LED=y CONFIG_LED_INIT_PRIORITY=90 CONFIG_LED_PWM=y CONFIG_HWINFO=y CONFIG_HWINFO_NRF=y CONFIG_SUPPORT_MINIMAL_LIBC=y CONFIG_MINIMAL_LIBC=y CONFIG_HAS_NEWLIB_LIBC_NANO=y CONFIG_MINIMAL_LIBC_MALLOC=y CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0 CONFIG_MINIMAL_LIBC_CALLOC=y CONFIG_MINIMAL_LIBC_REALLOCARRAY=y CONFIG_MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE=y CONFIG_CBPRINTF_NANO=y CONFIG_CBPRINTF_FULL_INTEGRAL=y CONFIG_CBPRINTF_LIBC_SUBSTS=y CONFIG_SYS_HEAP_ALLOC_LOOPS=3 CONFIG_SYS_HEAP_SMALL_ONLY=y CONFIG_POSIX_MAX_FDS=4 CONFIG_MAX_TIMER_COUNT=5 CONFIG_BT=y CONFIG_BT_HCI=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_CENTRAL=y CONFIG_BT_BROADCASTER=y CONFIG_BT_LIM_ADV_TIMEOUT=30 CONFIG_BT_OBSERVER=y CONFIG_BT_DIS=y CONFIG_BT_DIS_PNP=y CONFIG_BT_DIS_PNP_VID_SRC=1 CONFIG_BT_DIS_PNP_VER=1 CONFIG_BT_BAS=y CONFIG_BT_CONN=y CONFIG_BT_CONN_TX=y CONFIG_BT_PHY_UPDATE=y CONFIG_BT_DATA_LEN_UPDATE=y CONFIG_BT_BUF_ACL_TX_SIZE=27 CONFIG_BT_BUF_ACL_TX_COUNT=3 CONFIG_BT_BUF_ACL_RX_SIZE=69 CONFIG_BT_BUF_ACL_RX_COUNT=3 CONFIG_BT_BUF_EVT_RX_SIZE=68 CONFIG_BT_BUF_EVT_RX_COUNT=3 CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=43 CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT=3 CONFIG_BT_BUF_CMD_TX_SIZE=65 CONFIG_BT_BUF_CMD_TX_COUNT=2 CONFIG_BT_HAS_HCI_VS=y CONFIG_BT_HCI_VS=y CONFIG_BT_RPA=y CONFIG_BT_ASSERT=y CONFIG_BT_ASSERT_VERBOSE=y CONFIG_BT_DEBUG_NONE=y CONFIG_BT_HCI_HOST=y CONFIG_BT_HCI_TX_STACK_SIZE=1024 CONFIG_BT_HCI_ECC_STACK_SIZE=1140 CONFIG_BT_HCI_TX_PRIO=7 CONFIG_BT_HCI_RESERVE=0 CONFIG_BT_RECV_IS_RX_THREAD=y CONFIG_BT_RX_STACK_SIZE=2200 CONFIG_BT_RX_PRIO=8 CONFIG_BT_DRIVER_RX_HIGH_PRIO=6 CONFIG_BT_SETTINGS=y CONFIG_BT_SETTINGS_CCC_LAZY_LOADING=y CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE=y CONFIG_BT_SETTINGS_USE_PRINTK=y CONFIG_BT_CONN_TX_MAX=3 CONFIG_BT_USER_PHY_UPDATE=y CONFIG_BT_AUTO_PHY_UPDATE=y CONFIG_BT_AUTO_DATA_LEN_UPDATE=y CONFIG_BT_SMP=y CONFIG_BT_SMP_APP_PAIRING_ACCEPT=y CONFIG_BT_SMP_SC_PAIR_ONLY=y CONFIG_BT_BONDABLE=y CONFIG_BT_SMP_ENFORCE_MITM=y CONFIG_BT_SMP_MIN_ENC_KEY_SIZE=7 CONFIG_BT_L2CAP_TX_BUF_COUNT=3 CONFIG_BT_L2CAP_TX_FRAG_COUNT=2 CONFIG_BT_L2CAP_TX_MTU=65 CONFIG_BT_ATT_ENFORCE_FLOW=y CONFIG_BT_ATT_PREPARE_COUNT=0 CONFIG_BT_GATT_SERVICE_CHANGED=y CONFIG_BT_GATT_CACHING=y CONFIG_BT_GATT_CLIENT=y CONFIG_BT_GATT_READ_MULTIPLE=y CONFIG_BT_GATT_AUTO_DISCOVER_CCC=y CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=y CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=y CONFIG_BT_CREATE_CONN_TIMEOUT=3 CONFIG_BT_CONN_PARAM_UPDATE_TIMEOUT=5000 CONFIG_BT_BACKGROUND_SCAN_INTERVAL=2048 CONFIG_BT_BACKGROUND_SCAN_WINDOW=18 CONFIG_BT_ID_MAX=1 CONFIG_BT_ECC=y CONFIG_BT_TINYCRYPT_ECC=y CONFIG_BT_CTLR_LE_ENC_SUPPORT=y CONFIG_BT_CTLR_CONN_PARAM_REQ_SUPPORT=y CONFIG_BT_CTLR_EXT_REJ_IND_SUPPORT=y CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT=y CONFIG_BT_CTLR_DATA_LEN_UPDATE_SUPPORT=y CONFIG_BT_CTLR_PRIVACY_SUPPORT=y CONFIG_BT_CTLR_EXT_SCAN_FP_SUPPORT=y CONFIG_BT_CTLR_PHY_UPDATE_SUPPORT=y CONFIG_BT_CTLR_PHY_2M_SUPPORT=y CONFIG_BT_CTLR_PHY_CODED_SUPPORT=y CONFIG_BT_CTLR_ADV_EXT_SUPPORT=y CONFIG_BT_CTLR_ADV_PERIODIC_SUPPORT=y CONFIG_BT_CTLR_SYNC_PERIODIC_SUPPORT=y CONFIG_BT_CTLR_ADV_ISO_SUPPORT=y CONFIG_BT_CTLR_SYNC_ISO_SUPPORT=y CONFIG_BT_CTLR_CHAN_SEL_2_SUPPORT=y CONFIG_BT_CTLR_MIN_USED_CHAN_SUPPORT=y CONFIG_BT_CTLR_DTM_HCI_SUPPORT=y CONFIG_BT_CTLR_CONN_RSSI_SUPPORT=y CONFIG_BT_LL_SW_SPLIT=y CONFIG_BT_CTLR_CRYPTO=y CONFIG_BT_CTLR_HCI_VS_BUILD_INFO="" CONFIG_BT_CTLR_AD_DATA_BACKUP=y CONFIG_BT_CTLR_DUP_FILTER_LEN=16 CONFIG_BT_CTLR_DUP_FILTER_ADV_SET_MAX=1 CONFIG_BT_CTLR_RX_BUFFERS=1 CONFIG_BT_CTLR_TX_PWR_PLUS_8=y CONFIG_BT_CTLR_LE_ENC=y CONFIG_BT_CTLR_CONN_PARAM_REQ=y CONFIG_BT_CTLR_EXT_REJ_IND=y CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG=y CONFIG_BT_CTLR_LE_PING=y CONFIG_BT_CTLR_DATA_LENGTH=y CONFIG_BT_CTLR_DATA_LENGTH_MAX=27 CONFIG_BT_CTLR_PHY=y CONFIG_BT_CTLR_MIN_USED_CHAN=y CONFIG_BT_CTLR_CHECK_SAME_PEER_CONN=y CONFIG_BT_CTLR_FILTER_ACCEPT_LIST=y CONFIG_BT_CTLR_PRIVACY=y CONFIG_BT_CTLR_FAL_SIZE=8 CONFIG_BT_CTLR_RL_SIZE=8 CONFIG_BT_CTLR_EXT_SCAN_FP=y CONFIG_BT_CTLR_PHY_2M=y CONFIG_BT_CTLR_CHAN_SEL_2=y CONFIG_BT_LLL_VENDOR_NORDIC=y CONFIG_BT_CTLR_XTAL_ADVANCED_SUPPORT=y CONFIG_BT_CTLR_SCHED_ADVANCED_SUPPORT=y CONFIG_BT_CTLR_TIFS_HW_SUPPORT=y CONFIG_BT_CTLR_ULL_LLL_PRIO_SUPPORT=y CONFIG_BT_LL_SW_LLCP_LEGACY=y CONFIG_BT_CTLR_RX_PRIO_STACK_SIZE=448 CONFIG_BT_CTLR_COMPANY_ID=0x05F1 CONFIG_BT_CTLR_SUBVERSION_NUMBER=0xFFFF CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=1 CONFIG_BT_CTLR_OPTIMIZE_FOR_SPEED=y CONFIG_BT_CTLR_XTAL_ADVANCED=y CONFIG_BT_CTLR_XTAL_THRESHOLD=1500 CONFIG_BT_CTLR_SCHED_ADVANCED=y CONFIG_BT_CTLR_SCHED_ADVANCED_CENTRAL_CONN_SPACING=0 CONFIG_BT_CTLR_LLL_PRIO=0 CONFIG_BT_CTLR_ULL_HIGH_PRIO=1 CONFIG_BT_CTLR_ULL_LOW_PRIO=1 CONFIG_BT_CTLR_RADIO_ENABLE_FAST=y CONFIG_BT_CTLR_LLCP_CONN=16 CONFIG_BT_CTLR_FORCE_MD_COUNT=0 CONFIG_BT_CTLR_CONN_RANDOM_FORCE=y CONFIG_BT_MAYFLY_YIELD_AFTER_CALL=y CONFIG_BT_TICKER_EXT=y CONFIG_BT_COMPANY_ID=0x05F1 CONFIG_PRINTK=y CONFIG_ASSERT_VERBOSE=y CONFIG_NVS=y CONFIG_NET_BUF=y CONFIG_NET_BUF_USER_DATA_SIZE=0 CONFIG_PM_POLICY_RESIDENCY=y CONFIG_USB_PID_CDC_ACM_SAMPLE=0x0001 CONFIG_USB_PID_CDC_ACM_COMPOSITE_SAMPLE=0x0002 CONFIG_USB_PID_HID_CDC_SAMPLE=0x0003 CONFIG_USB_PID_CONSOLE_SAMPLE=0x0004 CONFIG_USB_PID_DFU_SAMPLE=0x0005 CONFIG_USB_PID_HID_SAMPLE=0x0006 CONFIG_USB_PID_HID_MOUSE_SAMPLE=0x0007 CONFIG_USB_PID_MASS_SAMPLE=0x0008 CONFIG_USB_PID_TESTUSB_SAMPLE=0x0009 CONFIG_USB_PID_WEBUSB_SAMPLE=0x000A CONFIG_USB_PID_BLE_HCI_SAMPLE=0x000B CONFIG_USB_PID_BLE_HCI_H4_SAMPLE=0x000C CONFIG_USB_PID_WPANUSB_SAMPLE=0x000D CONFIG_USB_DEVICE_SN="0123456789ABCDEF" CONFIG_USB_MAX_NUM_TRANSFERS=4 CONFIG_USB_REQUEST_BUFFER_SIZE=128 CONFIG_USB_MAX_ALT_SETTING=8 CONFIG_USB_SELF_POWERED=y CONFIG_USB_MAX_POWER=50 CONFIG_USB_DEVICE_HID=y CONFIG_USB_HID_DEVICE_NAME="HID" CONFIG_USB_HID_DEVICE_COUNT=1 CONFIG_HID_INTERRUPT_EP_MPS=16 CONFIG_USB_HID_REPORTS=1 CONFIG_ENTROPY_DEVICE_RANDOM_GENERATOR=y CONFIG_CSPRING_ENABLED=y CONFIG_HARDWARE_DEVICE_CS_GENERATOR=y CONFIG_FLASH_MAP=y CONFIG_SETTINGS=y CONFIG_SETTINGS_DYNAMIC_HANDLERS=y CONFIG_SETTINGS_NVS=y CONFIG_SETTINGS_NVS_SECTOR_SIZE_MULT=1 CONFIG_SETTINGS_NVS_SECTOR_COUNT=8 CONFIG_TEST_LOGGING_FLUSH_AFTER_TEST=y CONFIG_TOOLCHAIN_ZEPHYR_0_15=y CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_THREAD_LOCAL_STORAGE=y CONFIG_LINKER_ORPHAN_SECTION_WARN=y CONFIG_HAS_FLASH_LOAD_OFFSET=y CONFIG_USE_DT_CODE_PARTITION=y CONFIG_FLASH_LOAD_OFFSET=0x26000 CONFIG_FLASH_LOAD_SIZE=0xc6000 CONFIG_LD_LINKER_SCRIPT_SUPPORTED=y CONFIG_LD_LINKER_TEMPLATE=y CONFIG_KERNEL_ENTRY="__start" CONFIG_LINKER_SORT_BY_ALIGNMENT=y CONFIG_SRAM_OFFSET=0 CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT=y CONFIG_SIZE_OPTIMIZATIONS=y CONFIG_COMPILER_COLOR_DIAGNOSTICS=y CONFIG_COMPILER_OPT="" CONFIG_RUNTIME_ERROR_CHECKS=y CONFIG_OUTPUT_STAT=y CONFIG_OUTPUT_DISASSEMBLY=y CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y CONFIG_BUILD_OUTPUT_BIN=y CONFIG_BUILD_OUTPUT_UF2=y CONFIG_BUILD_OUTPUT_UF2_FAMILY_ID="0xada52840" CONFIG_COMPAT_INCLUDES=y -- west build: generating a build system Including boilerplate (Zephyr base): /app/zephyr/cmake/app/boilerplate.cmake -- Application: /app/zmk/app -- Adding ZMK config directory as board root: /app/config -- ZMK Config directory: /app/config -- Using keymap file: /app/config/adv360_right.keymap -- Zephyr version: 3.0.0 (/app/zephyr) -- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter -- Found west (found suitable version "0.14.0", minimum required is "0.7.1") -- Board: adv360_right -- Cache files will be written to: /root/.cache/zephyr -- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK -- Found host-tools: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2) -- Found dtc: /opt/zephyr-sdk-0.15.2/sysroots/aarch64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6") -- Found toolchain: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2) -- Found BOARD.dts: /app/config/boards/arm/adv360/adv360_right.dts -- Found devicetree overlay: /app/config/adv360_right.keymap -- Generated zephyr.dts: /app/build/right/zephyr/zephyr.dts -- Generated devicetree_unfixed.h: /app/build/right/zephyr/include/generated/devicetree_unfixed.h -- Generated device_extern.h: /app/build/right/zephyr/include/generated/device_extern.h -- Including generated dts.cmake file: /app/build/right/zephyr/dts.cmake Parsing /app/zmk/app/Kconfig Loaded configuration '/app/config/boards/arm/adv360/adv360_right_defconfig' Merged configuration '/app/zmk/app/prj.conf' Configuration saved to '/app/build/right/zephyr/.config' Kconfig header saved to '/app/build/right/zephyr/include/generated/autoconf.h' -- The C compiler identification is GNU 12.1.0 -- The CXX compiler identification is GNU 12.1.0 -- The ASM compiler identification is GNU -- Found assembler: /opt/zephyr-sdk-0.15.2/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -- Configuring done CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1053 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1265 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /app/zephyr/cmake/linker/ld/target.cmake:69 (add_custom_command): Policy CMP0116 is not set: Ninja generators transform DEPFILEs from add_custom_command(). Run "cmake --help-policy CMP0116" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /app/zephyr/CMakeLists.txt:1322 (configure_linker_script) This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done -- Build files have been written to: /app/build/right -- west build: building application [1/288] Preparing syscall dependency handling [2/288] Generating include/generated/version.h -- Zephyr version: 3.0.0 (/app/zephyr), build: 3861c95d11e9 [118/288] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c: In function 'z_arm_configure_dynamic_mpu_regions': /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' In file included from /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:13: /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: warning: 'arm_core_mpu_configure_dynamic_mpu_regions' reading 12 bytes from a region of size 0 [-Wstringop-overread] 307 | arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | region_num); | ~~~~~~~~~~~ /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu.c:307:9: note: referencing argument 1 of type 'const struct z_arm_mpu_partition[0]' /app/zephyr/arch/arm/core/aarch32/mpu/arm_core_mpu_dev.h:187:6: note: in a call to function 'arm_core_mpu_configure_dynamic_mpu_regions' 187 | void arm_core_mpu_configure_dynamic_mpu_regions( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [278/288] Linking C executable zephyr/zephyr_pre0.elf [282/288] Linking C executable zephyr/zephyr_pre1.elf [288/288] Linking C executable zephyr/zmk.elf Memory region Used Size Region Size %age Used FLASH: 169035 B 792 KB 20.84% SRAM: 38242 B 256 KB 14.59% IDT_LIST: 0 GB 2 KB 0.00% Converting to uf2, output size: 338432, start address: 0x26000 Wrote 338432 bytes to zmk.uf2 CONFIG_ZMK_KEYBOARD_NAME="Adv360 Pro rt" CONFIG_USB_DEVICE_PRODUCT="Adv360 Pro rt" CONFIG_BT_DEVICE_NAME="Adv360 Pro rt" CONFIG_USB_DEVICE_VID=0x29EA CONFIG_USB_DEVICE_PID=0x0362 CONFIG_USB_DEVICE_MANUFACTURER="Kinesis Corporation" CONFIG_BT_DIS_PNP_VID=0x1D50 CONFIG_BT_DIS_PNP_PID=0x615E CONFIG_BT_DIS_MODEL="Adv360 Pro rt" CONFIG_BT_DIS_MANUF="ZMK Project" CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y CONFIG_ZMK_HID_CONSUMER_REPORT_SIZE=6 CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y CONFIG_USB_NUMOF_EP_WRITE_RETRIES=3 CONFIG_ZMK_BLE=y CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_ZMK_BLE_THREAD_STACK_SIZE=512 CONFIG_ZMK_BLE_THREAD_PRIORITY=5 CONFIG_ZMK_BLE_KEYBOARD_REPORT_QUEUE_SIZE=20 CONFIG_ZMK_BLE_CONSUMER_REPORT_QUEUE_SIZE=5 CONFIG_BT_DEVICE_APPEARANCE=961 CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6 CONFIG_BT_PERIPHERAL_PREF_MAX_INT=12 CONFIG_BT_PERIPHERAL_PREF_LATENCY=30 CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400 CONFIG_ZMK_SPLIT=y CONFIG_ZMK_SPLIT_BLE=y CONFIG_ZMK_SPLIT_BLE_PERIPHERAL_STACK_SIZE=650 CONFIG_ZMK_SPLIT_BLE_PERIPHERAL_PRIORITY=5 CONFIG_ZMK_SPLIT_BLE_PERIPHERAL_POSITION_QUEUE_SIZE=10 CONFIG_BT_MAX_PAIRED=1 CONFIG_BT_MAX_CONN=1 CONFIG_ZMK_RGB_UNDERGLOW=y CONFIG_SPI=y CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y CONFIG_ZMK_RGB_UNDERGLOW_BRT_MIN=0 CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX=100 CONFIG_ZMK_RGB_UNDERGLOW_BRT_SCALE=1 CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=10 CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=0 CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=100 CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=100 CONFIG_ZMK_RGB_UNDERGLOW_SPD_START=3 CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=4 CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y CONFIG_ZMK_BACKLIGHT=y CONFIG_ZMK_BACKLIGHT_BRT_STEP=20 CONFIG_ZMK_BACKLIGHT_BRT_START=100 CONFIG_ZMK_BACKLIGHT_BRT_SCALE=25 CONFIG_ZMK_BACKLIGHT_ON_START=y CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y CONFIG_ZMK_IDLE_TIMEOUT=30000 CONFIG_ZMK_EXT_POWER=y CONFIG_ZMK_COMBO_MAX_PRESSED_COMBOS=4 CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=5 CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=4 CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=64 CONFIG_ZMK_MACRO_DEFAULT_WAIT_MS=15 CONFIG_ZMK_MACRO_DEFAULT_TAP_MS=30 CONFIG_ZMK_USB_INIT_PRIORITY=50 CONFIG_ZMK_BLE_INIT_PRIORITY=50 CONFIG_ZMK_KSCAN_EVENT_QUEUE_SIZE=4 CONFIG_ZMK_SETTINGS_SAVE_DEBOUNCE=29500 CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_KERNEL_BIN_NAME="zmk" CONFIG_REBOOT=y CONFIG_USB_DEVICE_STACK=y CONFIG_SENSOR=y CONFIG_GPIO=y CONFIG_NET_CONFIG_IEEE802154_DEV_NAME="" CONFIG_ADC_INIT_PRIORITY=50 CONFIG_GPIO_INIT_PRIORITY=40 CONFIG_BT_HCI_VS_EXT=y CONFIG_BOARD="adv360" CONFIG_BT_CTLR=y CONFIG_USB_NRFX=y CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER=y CONFIG_SOC="nRF52840_QIAA" CONFIG_SOC_SERIES="nrf52" CONFIG_NUM_IRQS=48 CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=32768 CONFIG_CLOCK_CONTROL_INIT_PRIORITY=30 CONFIG_ROM_START_OFFSET=0 CONFIG_PM=y CONFIG_SOC_HAS_TIMING_FUNCTIONS=y CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT=y CONFIG_CLOCK_CONTROL=y CONFIG_NRF_RTC_TIMER=y CONFIG_SYS_CLOCK_TICKS_PER_SEC=32768 CONFIG_BUILD_OUTPUT_HEX=y CONFIG_FLASH_SIZE=1024 CONFIG_FLASH_BASE_ADDRESS=0x0 CONFIG_TEST_EXTRA_STACKSIZE=0 CONFIG_TINYCRYPT=y CONFIG_MP_NUM_CPUS=1 CONFIG_ZEPHYR_CANOPENNODE_MODULE=y CONFIG_ZEPHYR_HAL_GIGADEVICE_MODULE=y CONFIG_ZEPHYR_HAL_NORDIC_MODULE=y CONFIG_HAS_NORDIC_DRIVERS=y CONFIG_NRF_802154_SOURCE_HAL_NORDIC=y CONFIG_HAS_NRFX=y CONFIG_NRFX_CLOCK=y CONFIG_NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED=y CONFIG_NRFX_GPIOTE=y CONFIG_NRFX_GPIOTE_NUM_OF_EVT_HANDLERS=1 CONFIG_NRFX_NVMC=y CONFIG_NRFX_POWER=y CONFIG_NRFX_PWM=y CONFIG_NRFX_PWM0=y CONFIG_NRFX_SPIM=y CONFIG_NRFX_SPIM1=y CONFIG_NRFX_SYSTICK=y CONFIG_NRFX_USBD=y CONFIG_ZEPHYR_HAL_RPI_PICO_MODULE=y CONFIG_ZEPHYR_LZ4_MODULE=y CONFIG_ZEPHYR_MBEDTLS_MODULE=y CONFIG_ZEPHYR_NANOPB_MODULE=y CONFIG_ZEPHYR_TFLITE_MICRO_MODULE=y CONFIG_ZEPHYR_TRACERECORDER_MODULE=y CONFIG_ZEPHYR_ZSCILIB_MODULE=y CONFIG_ZMK_KSCAN_GPIO_DRIVER=y CONFIG_ZMK_KSCAN_GPIO_MATRIX=y CONFIG_ZMK_KSCAN_MATRIX_WAIT_BEFORE_INPUTS=0 CONFIG_ZMK_KSCAN_MATRIX_WAIT_BETWEEN_OUTPUTS=0 CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=-1 CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=-1 CONFIG_ZMK_KSCAN_INIT_PRIORITY=40 CONFIG_ZMK_BATTERY=y CONFIG_ZEPHYR_DRIVERS_MODULE=y CONFIG_HAS_CMSIS_CORE=y CONFIG_HAS_CMSIS_CORE_M=y CONFIG_TINYCRYPT_ECC_DH=y CONFIG_TINYCRYPT_AES=y CONFIG_TINYCRYPT_AES_CMAC=y CONFIG_BOARD_ADV360_RIGHT=y CONFIG_BOARD_ENABLE_DCDC=y CONFIG_SOC_SERIES_NRF52X=y CONFIG_CPU_HAS_ARM_MPU=y CONFIG_HAS_SWO=y CONFIG_SOC_FAMILY="nordic_nrf" CONFIG_SOC_FAMILY_NRF=y CONFIG_HAS_HW_NRF_ACL=y CONFIG_HAS_HW_NRF_CC310=y CONFIG_HAS_HW_NRF_CCM=y CONFIG_HAS_HW_NRF_CCM_LFLEN_8BIT=y CONFIG_HAS_HW_NRF_CLOCK=y CONFIG_HAS_HW_NRF_COMP=y CONFIG_HAS_HW_NRF_ECB=y CONFIG_HAS_HW_NRF_EGU0=y CONFIG_HAS_HW_NRF_EGU1=y CONFIG_HAS_HW_NRF_EGU2=y CONFIG_HAS_HW_NRF_EGU3=y CONFIG_HAS_HW_NRF_EGU4=y CONFIG_HAS_HW_NRF_EGU5=y CONFIG_HAS_HW_NRF_GPIO0=y CONFIG_HAS_HW_NRF_GPIO1=y CONFIG_HAS_HW_NRF_GPIOTE=y CONFIG_HAS_HW_NRF_I2S=y CONFIG_HAS_HW_NRF_LPCOMP=y CONFIG_HAS_HW_NRF_MWU=y CONFIG_HAS_HW_NRF_NFCT=y CONFIG_HAS_HW_NRF_NVMC_PE=y CONFIG_HAS_HW_NRF_PDM=y CONFIG_HAS_HW_NRF_POWER=y CONFIG_HAS_HW_NRF_PPI=y CONFIG_HAS_HW_NRF_PWM0=y CONFIG_HAS_HW_NRF_PWM1=y CONFIG_HAS_HW_NRF_PWM2=y CONFIG_HAS_HW_NRF_PWM3=y CONFIG_HAS_HW_NRF_QDEC=y CONFIG_HAS_HW_NRF_QSPI=y CONFIG_HAS_HW_NRF_RADIO_BLE_2M=y CONFIG_HAS_HW_NRF_RADIO_TX_PWR_HIGH=y CONFIG_HAS_HW_NRF_RADIO_BLE_CODED=y CONFIG_HAS_HW_NRF_RADIO_IEEE802154=y CONFIG_HAS_HW_NRF_RNG=y CONFIG_HAS_HW_NRF_RTC0=y CONFIG_HAS_HW_NRF_RTC1=y CONFIG_HAS_HW_NRF_RTC2=y CONFIG_HAS_HW_NRF_SAADC=y CONFIG_HAS_HW_NRF_SPI0=y CONFIG_HAS_HW_NRF_SPI1=y CONFIG_HAS_HW_NRF_SPI2=y CONFIG_HAS_HW_NRF_SPIM0=y CONFIG_HAS_HW_NRF_SPIM1=y CONFIG_HAS_HW_NRF_SPIM2=y CONFIG_HAS_HW_NRF_SPIM3=y CONFIG_HAS_HW_NRF_SPIS0=y CONFIG_HAS_HW_NRF_SPIS1=y CONFIG_HAS_HW_NRF_SPIS2=y CONFIG_HAS_HW_NRF_SWI0=y CONFIG_HAS_HW_NRF_SWI1=y CONFIG_HAS_HW_NRF_SWI2=y CONFIG_HAS_HW_NRF_SWI3=y CONFIG_HAS_HW_NRF_SWI4=y CONFIG_HAS_HW_NRF_SWI5=y CONFIG_HAS_HW_NRF_TEMP=y CONFIG_HAS_HW_NRF_TIMER0=y CONFIG_HAS_HW_NRF_TIMER1=y CONFIG_HAS_HW_NRF_TIMER2=y CONFIG_HAS_HW_NRF_TIMER3=y CONFIG_HAS_HW_NRF_TIMER4=y CONFIG_HAS_HW_NRF_TWI0=y CONFIG_HAS_HW_NRF_TWI1=y CONFIG_HAS_HW_NRF_TWIM0=y CONFIG_HAS_HW_NRF_TWIM1=y CONFIG_HAS_HW_NRF_TWIS0=y CONFIG_HAS_HW_NRF_TWIS1=y CONFIG_HAS_HW_NRF_UART0=y CONFIG_HAS_HW_NRF_UARTE0=y CONFIG_HAS_HW_NRF_UARTE1=y CONFIG_HAS_HW_NRF_USBD=y CONFIG_HAS_HW_NRF_WDT=y CONFIG_NRF_HW_TIMER0_RESERVED=y CONFIG_NRF_HW_RTC0_RESERVED=y CONFIG_NRF_HW_RTC1_RESERVED=y CONFIG_SOC_NRF52840=y CONFIG_SOC_NRF52840_QIAA=y CONFIG_SOC_DCDC_NRF52X=y CONFIG_GPIO_AS_PINRESET=y CONFIG_NRF_ENABLE_ICACHE=y CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0 CONFIG_NRF_ACL_FLASH_REGION_SIZE=0 CONFIG_NRF_APPROTECT_USE_UICR=y CONFIG_SOC_COMPATIBLE_NRF=y CONFIG_SOC_COMPATIBLE_NRF52X=y CONFIG_ARCH="arm" CONFIG_CPU_CORTEX=y CONFIG_CPU_CORTEX_M=y CONFIG_ISA_THUMB2=y CONFIG_ASSEMBLER_ISA_THUMB2=y CONFIG_COMPILER_ISA_THUMB2=y CONFIG_STACK_ALIGN_DOUBLE_WORD=y CONFIG_PLATFORM_SPECIFIC_INIT=y CONFIG_FAULT_DUMP=2 CONFIG_FP16=y CONFIG_FP16_IEEE=y CONFIG_CPU_CORTEX_M4=y CONFIG_CPU_CORTEX_M_HAS_SYSTICK=y CONFIG_CPU_CORTEX_M_HAS_DWT=y CONFIG_CPU_CORTEX_M_HAS_BASEPRI=y CONFIG_CPU_CORTEX_M_HAS_VTOR=y CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS=y CONFIG_ARMV7_M_ARMV8_M_MAINLINE=y CONFIG_ARMV7_M_ARMV8_M_FP=y CONFIG_GEN_ISR_TABLES=y CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y CONFIG_GEN_IRQ_VECTOR_TABLE=y CONFIG_ARM_MPU=y CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE=32 CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE=32 CONFIG_ARM=y CONFIG_ARCH_IS_SET=y CONFIG_SRAM_SIZE=256 CONFIG_SRAM_BASE_ADDRESS=0x20000000 CONFIG_PRIVILEGED_STACK_SIZE=1024 CONFIG_KOBJECT_TEXT_AREA=256 CONFIG_KOBJECT_DATA_AREA_RESERVE_EXTRA_PERCENT=100 CONFIG_KOBJECT_RODATA_AREA_EXTRA_BYTES=16 CONFIG_GEN_PRIV_STACKS=y CONFIG_GEN_SW_ISR_TABLE=y CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0 CONFIG_GEN_IRQ_START_VECTOR=0 CONFIG_ARCH_HAS_SINGLE_THREAD_SUPPORT=y CONFIG_ARCH_HAS_TIMING_FUNCTIONS=y CONFIG_ARCH_HAS_STACK_PROTECTION=y CONFIG_ARCH_HAS_USERSPACE=y CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT=y CONFIG_ARCH_HAS_RAMFUNC_SUPPORT=y CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION=y CONFIG_ARCH_SUPPORTS_COREDUMP=y CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT=y CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO=y CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE=y CONFIG_ARCH_HAS_THREAD_ABORT=y CONFIG_CPU_HAS_FPU=y CONFIG_CPU_HAS_MPU=y CONFIG_MPU=y CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT=y CONFIG_SRAM_REGION_PERMISSIONS=y CONFIG_TOOLCHAIN_HAS_BUILTIN_FFS=y CONFIG_MULTITHREADING=y CONFIG_NUM_COOP_PRIORITIES=16 CONFIG_NUM_PREEMPT_PRIORITIES=15 CONFIG_MAIN_THREAD_PRIORITY=0 CONFIG_COOP_ENABLED=y CONFIG_PREEMPT_ENABLED=y CONFIG_PRIORITY_CEILING=-127 CONFIG_NUM_METAIRQ_PRIORITIES=0 CONFIG_MAIN_STACK_SIZE=1024 CONFIG_IDLE_STACK_SIZE=320 CONFIG_ISR_STACK_SIZE=2048 CONFIG_THREAD_STACK_INFO=y CONFIG_ERRNO=y CONFIG_SCHED_DUMB=y CONFIG_WAITQ_DUMB=y CONFIG_BOOT_DELAY=0 CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1 CONFIG_ATOMIC_OPERATIONS_BUILTIN=y CONFIG_TIMESLICING=y CONFIG_TIMESLICE_SIZE=0 CONFIG_TIMESLICE_PRIORITY=0 CONFIG_POLL=y CONFIG_NUM_MBOX_ASYNC_MSGS=10 CONFIG_KERNEL_MEM_POOL=y CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN=y CONFIG_SWAP_NONATOMIC=y CONFIG_SYS_CLOCK_EXISTS=y CONFIG_TIMEOUT_64BIT=y CONFIG_SYS_CLOCK_MAX_TIMEOUT_DAYS=365 CONFIG_XIP=y CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30 CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40 CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50 CONFIG_APPLICATION_INIT_PRIORITY=90 CONFIG_STACK_POINTER_RANDOM=0 CONFIG_TICKLESS_KERNEL=y CONFIG_TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE=y CONFIG_HAS_DTS=y CONFIG_HAS_DTS_GPIO=y CONFIG_HAS_SEGGER_RTT=y CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0 CONFIG_TICKLESS_CAPABLE=y CONFIG_SYSTEM_CLOCK_WAIT_FOR_STABILITY=y CONFIG_RISCV_MACHINE_TIMER_SYSTEM_CLOCK_DIVIDER=0 CONFIG_ENTROPY_GENERATOR=y CONFIG_ENTROPY_INIT_PRIORITY=50 CONFIG_ENTROPY_NRF5_RNG=y CONFIG_ENTROPY_NRF5_BIAS_CORRECTION=y CONFIG_ENTROPY_NRF5_THR_POOL_SIZE=8 CONFIG_ENTROPY_NRF5_THR_THRESHOLD=4 CONFIG_ENTROPY_NRF5_ISR_POOL_SIZE=16 CONFIG_ENTROPY_NRF5_ISR_THRESHOLD=12 CONFIG_ENTROPY_HAS_DRIVER=y CONFIG_GPIO_NRFX=y CONFIG_SPI_INIT_PRIORITY=70 CONFIG_SPI_COMPLETION_TIMEOUT_TOLERANCE=200 CONFIG_SPI_NRFX=y CONFIG_SPI_1_NRF_SPIM=y CONFIG_SPI_1_NRF_ORC=0xff CONFIG_SPI_NRFX_RAM_BUFFER_SIZE=8 CONFIG_PWM=y CONFIG_PWM_NRFX=y CONFIG_ADC=y CONFIG_ADC_CONFIGURABLE_INPUTS=y CONFIG_ADC_NRFX_SAADC=y CONFIG_CLOCK_CONTROL_NRF=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y CONFIG_CLOCK_CONTROL_NRF_ACCURACY=500 CONFIG_FLASH_HAS_DRIVER_ENABLED=y CONFIG_FLASH_HAS_PAGE_LAYOUT=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_INIT_PRIORITY=50 CONFIG_SOC_FLASH_NRF=y CONFIG_SOC_FLASH_NRF_RADIO_SYNC_TICKER=y CONFIG_SENSOR_INIT_PRIORITY=90 CONFIG_TMP112_FULL_SCALE_RUNTIME=y CONFIG_TMP112_SAMPLING_FREQUENCY_RUNTIME=y CONFIG_USB_DEVICE_DRIVER=y CONFIG_USB_DEVICE_REMOTE_WAKEUP=y CONFIG_USB_NRFX_EVT_QUEUE_SIZE=32 CONFIG_USB_NRFX_WORK_QUEUE_STACK_SIZE=1024 CONFIG_USB_NRFX_ATTACHED_EVENT_DELAY=0 CONFIG_LED_STRIP=y CONFIG_LED_STRIP_INIT_PRIORITY=90 CONFIG_LED_STRIP_RGB_SCRATCH=y CONFIG_WS2812_STRIP=y CONFIG_WS2812_STRIP_SPI=y CONFIG_LED=y CONFIG_LED_INIT_PRIORITY=90 CONFIG_LED_PWM=y CONFIG_HWINFO=y CONFIG_HWINFO_NRF=y CONFIG_SUPPORT_MINIMAL_LIBC=y CONFIG_MINIMAL_LIBC=y CONFIG_HAS_NEWLIB_LIBC_NANO=y CONFIG_MINIMAL_LIBC_MALLOC=y CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0 CONFIG_MINIMAL_LIBC_CALLOC=y CONFIG_MINIMAL_LIBC_REALLOCARRAY=y CONFIG_MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE=y CONFIG_CBPRINTF_NANO=y CONFIG_CBPRINTF_FULL_INTEGRAL=y CONFIG_CBPRINTF_LIBC_SUBSTS=y CONFIG_SYS_HEAP_ALLOC_LOOPS=3 CONFIG_SYS_HEAP_SMALL_ONLY=y CONFIG_POSIX_MAX_FDS=4 CONFIG_MAX_TIMER_COUNT=5 CONFIG_BT=y CONFIG_BT_HCI=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_BROADCASTER=y CONFIG_BT_LIM_ADV_TIMEOUT=30 CONFIG_BT_DIS=y CONFIG_BT_DIS_PNP=y CONFIG_BT_DIS_PNP_VID_SRC=1 CONFIG_BT_DIS_PNP_VER=1 CONFIG_BT_BAS=y CONFIG_BT_CONN=y CONFIG_BT_CONN_TX=y CONFIG_BT_PHY_UPDATE=y CONFIG_BT_DATA_LEN_UPDATE=y CONFIG_BT_BUF_ACL_TX_SIZE=27 CONFIG_BT_BUF_ACL_TX_COUNT=3 CONFIG_BT_BUF_ACL_RX_SIZE=69 CONFIG_BT_BUF_ACL_RX_COUNT=3 CONFIG_BT_BUF_EVT_RX_SIZE=68 CONFIG_BT_BUF_EVT_RX_COUNT=3 CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=43 CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT=3 CONFIG_BT_BUF_CMD_TX_SIZE=65 CONFIG_BT_BUF_CMD_TX_COUNT=2 CONFIG_BT_HAS_HCI_VS=y CONFIG_BT_HCI_VS=y CONFIG_BT_RPA=y CONFIG_BT_ASSERT=y CONFIG_BT_ASSERT_VERBOSE=y CONFIG_BT_DEBUG_NONE=y CONFIG_BT_HCI_HOST=y CONFIG_BT_HCI_TX_STACK_SIZE=640 CONFIG_BT_HCI_ECC_STACK_SIZE=1140 CONFIG_BT_HCI_TX_PRIO=7 CONFIG_BT_HCI_RESERVE=0 CONFIG_BT_RECV_IS_RX_THREAD=y CONFIG_BT_RX_STACK_SIZE=2200 CONFIG_BT_RX_PRIO=8 CONFIG_BT_DRIVER_RX_HIGH_PRIO=6 CONFIG_BT_SETTINGS=y CONFIG_BT_SETTINGS_CCC_LAZY_LOADING=y CONFIG_BT_SETTINGS_CCC_STORE_ON_WRITE=y CONFIG_BT_SETTINGS_USE_PRINTK=y CONFIG_BT_CONN_TX_MAX=3 CONFIG_BT_USER_PHY_UPDATE=y CONFIG_BT_AUTO_PHY_UPDATE=y CONFIG_BT_AUTO_DATA_LEN_UPDATE=y CONFIG_BT_SMP=y CONFIG_BT_SMP_APP_PAIRING_ACCEPT=y CONFIG_BT_SMP_SC_PAIR_ONLY=y CONFIG_BT_BONDABLE=y CONFIG_BT_SMP_ENFORCE_MITM=y CONFIG_BT_SMP_MIN_ENC_KEY_SIZE=7 CONFIG_BT_L2CAP_TX_BUF_COUNT=3 CONFIG_BT_L2CAP_TX_FRAG_COUNT=2 CONFIG_BT_L2CAP_TX_MTU=65 CONFIG_BT_ATT_ENFORCE_FLOW=y CONFIG_BT_ATT_PREPARE_COUNT=0 CONFIG_BT_GATT_SERVICE_CHANGED=y CONFIG_BT_GATT_CACHING=y CONFIG_BT_GATT_READ_MULTIPLE=y CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=y CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=y CONFIG_BT_CREATE_CONN_TIMEOUT=3 CONFIG_BT_CONN_PARAM_UPDATE_TIMEOUT=5000 CONFIG_BT_ID_MAX=1 CONFIG_BT_ECC=y CONFIG_BT_TINYCRYPT_ECC=y CONFIG_BT_CTLR_LE_ENC_SUPPORT=y CONFIG_BT_CTLR_CONN_PARAM_REQ_SUPPORT=y CONFIG_BT_CTLR_EXT_REJ_IND_SUPPORT=y CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT=y CONFIG_BT_CTLR_DATA_LEN_UPDATE_SUPPORT=y CONFIG_BT_CTLR_PRIVACY_SUPPORT=y CONFIG_BT_CTLR_EXT_SCAN_FP_SUPPORT=y CONFIG_BT_CTLR_PHY_UPDATE_SUPPORT=y CONFIG_BT_CTLR_PHY_2M_SUPPORT=y CONFIG_BT_CTLR_PHY_CODED_SUPPORT=y CONFIG_BT_CTLR_ADV_EXT_SUPPORT=y CONFIG_BT_CTLR_ADV_PERIODIC_SUPPORT=y CONFIG_BT_CTLR_SYNC_PERIODIC_SUPPORT=y CONFIG_BT_CTLR_ADV_ISO_SUPPORT=y CONFIG_BT_CTLR_SYNC_ISO_SUPPORT=y CONFIG_BT_CTLR_CHAN_SEL_2_SUPPORT=y CONFIG_BT_CTLR_MIN_USED_CHAN_SUPPORT=y CONFIG_BT_CTLR_DTM_HCI_SUPPORT=y CONFIG_BT_CTLR_CONN_RSSI_SUPPORT=y CONFIG_BT_LL_SW_SPLIT=y CONFIG_BT_CTLR_CRYPTO=y CONFIG_BT_CTLR_HCI_VS_BUILD_INFO="" CONFIG_BT_CTLR_AD_DATA_BACKUP=y CONFIG_BT_CTLR_RX_BUFFERS=1 CONFIG_BT_CTLR_TX_PWR_PLUS_8=y CONFIG_BT_CTLR_LE_ENC=y CONFIG_BT_CTLR_CONN_PARAM_REQ=y CONFIG_BT_CTLR_EXT_REJ_IND=y CONFIG_BT_CTLR_PER_INIT_FEAT_XCHG=y CONFIG_BT_CTLR_LE_PING=y CONFIG_BT_CTLR_DATA_LENGTH=y CONFIG_BT_CTLR_DATA_LENGTH_MAX=27 CONFIG_BT_CTLR_PHY=y CONFIG_BT_CTLR_MIN_USED_CHAN=y CONFIG_BT_CTLR_FILTER_ACCEPT_LIST=y CONFIG_BT_CTLR_PRIVACY=y CONFIG_BT_CTLR_FAL_SIZE=8 CONFIG_BT_CTLR_RL_SIZE=8 CONFIG_BT_CTLR_PHY_2M=y CONFIG_BT_CTLR_CHAN_SEL_2=y CONFIG_BT_LLL_VENDOR_NORDIC=y CONFIG_BT_CTLR_XTAL_ADVANCED_SUPPORT=y CONFIG_BT_CTLR_SCHED_ADVANCED_SUPPORT=y CONFIG_BT_CTLR_TIFS_HW_SUPPORT=y CONFIG_BT_CTLR_ULL_LLL_PRIO_SUPPORT=y CONFIG_BT_LL_SW_LLCP_LEGACY=y CONFIG_BT_CTLR_RX_PRIO_STACK_SIZE=448 CONFIG_BT_CTLR_COMPANY_ID=0x05F1 CONFIG_BT_CTLR_SUBVERSION_NUMBER=0xFFFF CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=1 CONFIG_BT_CTLR_OPTIMIZE_FOR_SPEED=y CONFIG_BT_CTLR_XTAL_ADVANCED=y CONFIG_BT_CTLR_XTAL_THRESHOLD=1500 CONFIG_BT_CTLR_LLL_PRIO=0 CONFIG_BT_CTLR_ULL_HIGH_PRIO=1 CONFIG_BT_CTLR_ULL_LOW_PRIO=1 CONFIG_BT_CTLR_RADIO_ENABLE_FAST=y CONFIG_BT_CTLR_LLCP_CONN=1 CONFIG_BT_CTLR_FORCE_MD_COUNT=0 CONFIG_BT_CTLR_CONN_RANDOM_FORCE=y CONFIG_BT_MAYFLY_YIELD_AFTER_CALL=y CONFIG_BT_TICKER_EXT=y CONFIG_BT_COMPANY_ID=0x05F1 CONFIG_PRINTK=y CONFIG_ASSERT_VERBOSE=y CONFIG_NVS=y CONFIG_NET_BUF=y CONFIG_NET_BUF_USER_DATA_SIZE=0 CONFIG_PM_POLICY_RESIDENCY=y CONFIG_USB_PID_CDC_ACM_SAMPLE=0x0001 CONFIG_USB_PID_CDC_ACM_COMPOSITE_SAMPLE=0x0002 CONFIG_USB_PID_HID_CDC_SAMPLE=0x0003 CONFIG_USB_PID_CONSOLE_SAMPLE=0x0004 CONFIG_USB_PID_DFU_SAMPLE=0x0005 CONFIG_USB_PID_HID_SAMPLE=0x0006 CONFIG_USB_PID_HID_MOUSE_SAMPLE=0x0007 CONFIG_USB_PID_MASS_SAMPLE=0x0008 CONFIG_USB_PID_TESTUSB_SAMPLE=0x0009 CONFIG_USB_PID_WEBUSB_SAMPLE=0x000A CONFIG_USB_PID_BLE_HCI_SAMPLE=0x000B CONFIG_USB_PID_BLE_HCI_H4_SAMPLE=0x000C CONFIG_USB_PID_WPANUSB_SAMPLE=0x000D CONFIG_USB_DEVICE_SN="0123456789ABCDEF" CONFIG_USB_MAX_NUM_TRANSFERS=4 CONFIG_USB_REQUEST_BUFFER_SIZE=128 CONFIG_USB_MAX_ALT_SETTING=8 CONFIG_USB_SELF_POWERED=y CONFIG_USB_MAX_POWER=50 CONFIG_ENTROPY_DEVICE_RANDOM_GENERATOR=y CONFIG_CSPRING_ENABLED=y CONFIG_HARDWARE_DEVICE_CS_GENERATOR=y CONFIG_FLASH_MAP=y CONFIG_SETTINGS=y CONFIG_SETTINGS_DYNAMIC_HANDLERS=y CONFIG_SETTINGS_NVS=y CONFIG_SETTINGS_NVS_SECTOR_SIZE_MULT=1 CONFIG_SETTINGS_NVS_SECTOR_COUNT=8 CONFIG_TEST_LOGGING_FLUSH_AFTER_TEST=y CONFIG_TOOLCHAIN_ZEPHYR_0_15=y CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_THREAD_LOCAL_STORAGE=y CONFIG_LINKER_ORPHAN_SECTION_WARN=y CONFIG_HAS_FLASH_LOAD_OFFSET=y CONFIG_USE_DT_CODE_PARTITION=y CONFIG_FLASH_LOAD_OFFSET=0x26000 CONFIG_FLASH_LOAD_SIZE=0xc6000 CONFIG_LD_LINKER_SCRIPT_SUPPORTED=y CONFIG_LD_LINKER_TEMPLATE=y CONFIG_KERNEL_ENTRY="__start" CONFIG_LINKER_SORT_BY_ALIGNMENT=y CONFIG_SRAM_OFFSET=0 CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT=y CONFIG_SIZE_OPTIMIZATIONS=y CONFIG_COMPILER_COLOR_DIAGNOSTICS=y CONFIG_COMPILER_OPT="" CONFIG_RUNTIME_ERROR_CHECKS=y CONFIG_OUTPUT_STAT=y CONFIG_OUTPUT_DISASSEMBLY=y CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y CONFIG_BUILD_OUTPUT_BIN=y CONFIG_BUILD_OUTPUT_UF2=y CONFIG_BUILD_OUTPUT_UF2_FAMILY_ID="0xada52840" CONFIG_COMPAT_INCLUDES=y ````
FlippingBinary commented 1 year ago

@cvcore that seems like a good theory. I do have more than five Bluetooth devices in my office, so it's reasonable to believe that they were interfering. However, I haven't had trouble since I flashed the firmware reset image and then flashed the latest firmware. If the keyboard starts to act up, I will try your suggestion.

brokenalarms commented 1 year ago

Hmm with mine, I can get it unstuck by restarting the laptop that it was last paired to (1), then switching to the new device I was trying to pair in the first place (2). However, I still need to delete the device from 2 and re-pair on 2 every time otherwise it just flashes slowly (paired but can't find device). Also, I need to have the device last connected to handy, which is a fairly major requirement as I used to leave it at work sometimes. Otherwise it's a reflash if I want to use it that day 😔

On Mon, May 8, 2023, 6:40 AM Jon Musselwhite @.***> wrote:

@cvcore https://github.com/cvcore that seems like a good theory. I do have more than five Bluetooth devices in my office, so it's reasonable to believe that they were interfering. However, I haven't had trouble since I flashed the firmware reset image and then flashed the latest firmware. If the keyboard starts to act up, I will try your suggestion.

— Reply to this email directly, view it on GitHub https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/110#issuecomment-1538379753, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYLYCWLAUUNYKARASURKLLXFDZT5ANCNFSM6AAAAAAVGMUECY . You are receiving this because you were mentioned.Message ID: @.***>

andrewlmurray commented 1 year ago

Hello - I ran into this issue tonight. Found this ticket while looking for a solution. I have only two profiles I use - a mac on profile 1 and my windows pc on profile 2.

My repro case was very simple:

  1. I was on profile 2 connected to my PC.
  2. I restarted my PC.
  3. Upon restart my keyboard did not re-pair so I couldn't enter my password.
  4. I turned off both halves of the keyboard.
  5. I turn on both halves of the keyboard. The left side paired to the PC, the right side showed three flashing lights.

To attempt to fix I tried the steps listed in the FAQ. (power cycled, reset left and then right at almost the exact same time) Those steps did not help.

I also rebased my firmware fork against the latest from this repo, (my changes are only to my keymap) and reflashed both halves. Still would not connect.

I then tried the trick that @FlippingBinary listed in his issue. I tried connecting w/ my phone saw it fail and then power-cycled. Both halves then started talking happily again.

I've used your keyboards forever and love my 360. Hope you can find a fix for this...

andrewlmurray commented 1 year ago

After reading through the responses to this ticket - just want to add some details in case it is helpful.

  1. I was on a semi-modern firmware when this happened. (sometime late march was the last time I updated)
  2. I do not have a plethora of bluetooth devices in range. Just my laptop, phone and my PC.
itsthejoker commented 1 year ago

...I wonder if the devices that you have connected in specific slots are a clue? I also have a Mac in slot 1 and a PC in slot 2. 🧐

brokenalarms commented 1 year ago

Both my devices are Mac so don't think it makes a difference there..

On Mon, May 22, 2023, 6:59 AM Joe Kaufeld @.***> wrote:

...I wonder if the devices that you have connected in specific slots are a clue? I also have a Mac in slot 1 and a PC in slot 2. 🧐

— Reply to this email directly, view it on GitHub https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/110#issuecomment-1557272357, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYLYCX3KU24UHUR7ZBZNYTXHNWMJANCNFSM6AAAAAAVGMUECY . You are receiving this because you were mentioned.Message ID: @.***>

ReFil commented 1 year ago

We've developed a new major update for the Adv360 Pro with significant improvements to the bluetooth code especially with regards to mac compatibility and split connection reliability. https://github.com/KinesisCorporation/Adv360-Pro-ZMK/tree/V3.0-beta It would be very helpful if people encountering issues with macs and split connectivity could test this branch. Our initial testing on our devices has so far been positive, but any feedback would be much appreciated Please note that since this is a major update you will need to perform a settings reset using this file prior to installing the update: https://github.com/KinesisCorporation/Adv360-Pro-ZMK/raw/V3.0-beta/settings-reset.uf2 This also necessitates re-pairing to all host devices The default build of the firmware can be found here: https://github.com/KinesisCorporation/Adv360-Pro-ZMK/actions/runs/5158714204

cvcore commented 1 year ago

Hi @ReFil , thanks for the update and effort spent in investigating the issue.

Here are my observations after having upgraded to the firmware built with the V3.0-beta branch, tested on a model with serial no. starting with 360PRO310** (purchased in Mar. 2023):

ReFil commented 12 months ago

Can anyone replicate this issue on V3.0 firmware?

FlippingBinary commented 12 months ago

Can anyone replicate this issue on V3.0 firmware?

I don't usually turn it off and on, so I tested it before writing this comment. I turned both halves off, waited a few seconds, then turned them both on at the same time. The right half failed to connect to the left, but the left one connected to the computer. I power cycled a few more times, alternating between a slight lead on the left one or the right. At one point, the connection indicator on the left was solid white, indicating a connection to the computer, but the computer just said it was just paired, not connected. I power cycled one more time and now I can type again.

There's a possibility my computer could be causing problems -- it is the other link in the chain, after all. So again with it connected to my laptop on profile 2. After power cycling, the left half showed a white connection light instead of blue and I could not get the right half connected until I pressed the reset button on both halves simultaneously. At one point, the left half was unresponsive with no lights even though the switch was in the on position.

Since I don't usually travel with the keyboard, the more troubling problems for me lately have been stuck keys and the connection dropping.

The stuck key seems to get unstuck if I disable Bluetooth on the computer and re-enable it. I used to try power cycling it to get the key unstuck, but that would often trigger the difficulty in getting the right connected to the left. There didn't seem to be any pattern to the occurrence of stuck keys. They computer just seemed to think a key was held, and no other key presses would register.

When the Bluetooth connection fails to work, I just bypass Bluetooth with a USB cable. Disabling and re-enabling Bluetooth on the computer doesn't fix it and power cycling doesn't fix it. The keyboard was getting unreliable, so I flashed the v3 settings reset and firmware again (even though it was already on v3) a few days ago and haven't had that problem since then, but the right half still struggles to connect with the left.

ReFil commented 11 months ago

Hmm I see, I'm trying to separate different problems out so I can target specific problems with bugfixes. I'm not sure that your current connection troubles are related to this issue. Could you open a new issue for your stuck key problem?

ReFil commented 9 months ago

Given there haven't been reports of this specific profile connection issue occuring on v3.0 I'm closing this issue as solved

FlippingBinary commented 8 months ago

This problem continues to persist. I'm not sure what else I can do about it. I even bought a different Bluetooth dongle just to make sure it wasn't the Bluetooth card in my desktop causing issues. The stuck key problem seems to occur when the keyboard disconnects from Bluetooth. I assume Windows repeats the key on its own until it receives a keyup event from the keyboard, or until it recognizes that the keyboard is disconnected/unresponsive. Is there some kind of diagnostic mode I can use to record logs so I can send you something next time it happens? The only way I can be sure I'm not interrupted by this problem is by leaving it plugged in, but then I don't notice how frequently it disconnects from Bluetooth until the right one needs to charge and I forget to switch it back.

ReFil commented 8 months ago

Are you using the latest firmware? It brings in some changes to host connections. I cannot replicate this behaviour on my setup since the first v3.0 update. You can enable logging but it interferes with Bluetooth and sleep mode so it would probably not be too helpful in this case

KinesisCorporation commented 8 months ago

Hey Jon, we get this is really frustrating.

If you would please use the attached instructions to install a 2.0 AND 3.0 Reset, and then flash the 10-23-23 default firmware (please download all files from the link below). These instructions are designed to eliminate all the weird potential complications that be introduced during an update (its overkill 99% of the time) so follow them to the letter. If its still not working then we definitely want to issue an RMA and either get you a new Pro or switch you into the USB model, whatever you prefer.

https://kinesis-ergo.com/support/kb360pro/#firmware-updates

Advantage360 Professional - Firmware Update Instructions 10.25.23 (KB360-PRO-GBR).pdf

FlippingBinary commented 8 months ago

Thank you! I will try your suggestions tomorrow. I was already running the 3.0 beta that was posted in this thread, but I will try the two different resets before trying the 10-23-23 default firmware. I'm just happy to have something new to try.

ReFil commented 8 months ago

Hi Jon, has the newest update shown any change in behaviour?

rpisarew commented 8 months ago

For me now it is better, but I still have sometimes to disable/enable my BT to get a connection when my MacBook was not in range of the keyboard for a longer time. And it takes long to get a connection on a Windows PC.

Rarely I got repeating or delayed keys, but disable/enable BT helps to resolve that..

ReFil commented 8 months ago

Thank you for the feedback, this GitHub issue specifically pertains to a problem where the splits will not reconnect if turned off in a different Bluetooth profile, for some of your other Bluetooth problems there's other issues that have been opened. People are currently experimenting with changing the BLE parameters which seems to improve the connection reliability e.g. https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/259#issuecomment-1794396919

FlippingBinary commented 8 months ago

@ReFil My two halves seem to connect reliably if the left half is first either plugged in or its Bluetooth profile LED is solid. Then the right half has no trouble connecting. However, if I turn the right half on at the same time as the left, or before the left has turned on its Bluetooth profile LED, the right half won't connect and the left half fails to connect to Bluetooth. I don't know if that is the expected behavior, but this is perfectly acceptable to me because I can reliably get it to connect.

I apologize for conflating the connection problem between the modules with the connection problem between the keyboard and the computer. The initially described problem is resolved, so I'll close this issue. Thank you for your patience and for the link to the other issue. It looks like it might solve the Bluetooth connection problem I've been having.

ReFil commented 8 months ago

Hi Jon

No worries, glad to be of assistance. The behaviour you're describing with the split connection is expected right now, I'm going to investigate to see if we can improve the experience agnostic of power on order. If you're still having connection issues to your Mac after trying some of those other fixes feel free to open another issue, we're trying our best here to ensure every 360 Pro user gets the best experience!

brokenalarms commented 8 months ago

Just on this, if you're supposed to have the left on first, then you should amend your manuals too, as I repeatedly read instructions to turn both on at the same time. Cheers!

On Mon, Nov 6, 2023, 9:52 AM ReFil @.***> wrote:

Hi Jon

No worries, glad to be of assistance. The behaviour you're describing with the split connection is expected right now, I'm going to investigate to see if we can improve the experience agnostic of power on order. If you're still having connection issues to your Mac after trying some of those other fixes feel free to open another issue, we're trying our best here to ensure every 360 Pro user gets the best experience!

— Reply to this email directly, view it on GitHub https://github.com/KinesisCorporation/Adv360-Pro-ZMK/issues/110#issuecomment-1795009866, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYLYCXLC6XIE57EAC7SPRDYDD2TVAVCNFSM6AAAAAAVGMUEC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJVGAYDSOBWGY . You are receiving this because you were mentioned.Message ID: @.***>