# Copyright (c) 2022 The ZMK Contributors # SPDX-License-Identifier: MIT if ZMK_SPLIT && ZMK_SPLIT_BLE menu "BLE Transport" # Added for backwards compatibility. New shields/board should set `ZMK_SPLIT_ROLE_CENTRAL` only. config ZMK_SPLIT_BLE_ROLE_CENTRAL bool select ZMK_SPLIT_ROLE_CENTRAL config ZMK_SPLIT_ROLE_CENTRAL select BT_CENTRAL select BT_GATT_CLIENT select BT_GATT_AUTO_DISCOVER_CCC select BT_SCAN_WITH_IDENTITY # Bump this value needed for concurrent GATT discovery of splits config BT_L2CAP_TX_BUF_COUNT default 5 if ZMK_SPLIT_ROLE_CENTRAL if ZMK_SPLIT_ROLE_CENTRAL config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS int "Number of peripherals that will connect to the central." default 1 menuconfig ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING bool "Fetch Peripheral Battery Level Info" help Adds internal support for fetching the battery levels from peripherals and generating events in the ZMK eventing system. if ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING config ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_QUEUE_SIZE int "Max number of battery level events to queue when received from peripherals" default ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS config ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY bool "Proxy Peripheral Battery Level Info" help Adds support for reporting the battery levels of connected split peripherals through an additional Battery Level service. endif config ZMK_SPLIT_BLE_CENTRAL_POSITION_QUEUE_SIZE int "Max number of key position state events to queue when received from peripherals" default 5 config ZMK_SPLIT_BLE_CENTRAL_SPLIT_RUN_STACK_SIZE int "BLE split central write thread stack size" default 512 config ZMK_SPLIT_BLE_CENTRAL_SPLIT_RUN_QUEUE_SIZE int "Max number of behavior run events to queue to send to the peripheral(s)" default 5 config ZMK_SPLIT_BLE_CENTRAL_DATA_XFER_STACK_SIZE int "BLE split central to peripheral thread stack size" default 512 config ZMK_SPLIT_BLE_CENTRAL_DATA_XFER_QUEUE_SIZE int "Max number of data transfer requests to queue to send to the peripheral(s)" default 5 config ZMK_SPLIT_BLE_PREF_INT int "Connection interval to use for split central/peripheral connection" default 6 config ZMK_SPLIT_BLE_PREF_LATENCY int "Latency to use for split central/peripheral connection" default 30 config ZMK_SPLIT_BLE_PREF_TIMEOUT int "Supervision timeout to use for split central/peripheral connection" default 400 endif # ZMK_SPLIT_ROLE_CENTRAL if !ZMK_SPLIT_ROLE_CENTRAL config ZMK_SPLIT_BLE_PERIPHERAL_STACK_SIZE int "BLE split peripheral notify thread stack size" default 650 config ZMK_SPLIT_BLE_PERIPHERAL_PRIORITY int "BLE split peripheral notify thread priority" default 5 config ZMK_SPLIT_BLE_PERIPHERAL_POSITION_QUEUE_SIZE int "Max number of key position state events to queue to send to the central" default 10 config BT_MAX_PAIRED default 1 config BT_MAX_CONN default 1 # Allow central to specify connection parameters. config BT_GAP_AUTO_UPDATE_CONN_PARAMS default n #!ZMK_SPLIT_ROLE_CENTRAL endif endmenu #ZMK_SPLIT_BLE endif if ZMK_BLE if ZMK_SPLIT_BLE && ZMK_SPLIT_ROLE_CENTRAL config BT_MAX_CONN default 6 config BT_MAX_PAIRED default 6 #ZMK_SPLIT_BLE && ZMK_SPLIT_ROLE_CENTRAL endif if !ZMK_SPLIT_BLE config BT_MAX_CONN default 5 config BT_MAX_PAIRED default 5 #!ZMK_SPLIT_BLE endif #ZMK_BLE endif