Update dongle configuration for split keyboard support.
Fixes pwr choice config improves wording
This commit is contained in:
parent
344936eb02
commit
0eb377049c
1 changed files with 42 additions and 43 deletions
|
@ -26,9 +26,9 @@ Disadvantages:
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
Depending on how the dongle is used, there are some additional [latency considerations](./split-keyboards.md#latency-considerations) to keep in mind.
|
Depending on how the dongle is used, there are some additional [latency considerations](./split-keyboards.md#latency-considerations) to keep in mind.
|
||||||
|
On average, the latency increase is around 3.75ms, in worst case scenario, the latency increase can be up to 7.5ms compared to a unibody keyboard.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|
||||||
## Editing a Keyboard Definition to Support a Dongle
|
## Editing a Keyboard Definition to Support a Dongle
|
||||||
|
|
||||||
You will modify the [files defining your keyboard](../config/index.md#shield-folder) to support a dongle.
|
You will modify the [files defining your keyboard](../config/index.md#shield-folder) to support a dongle.
|
||||||
|
@ -37,7 +37,6 @@ This is done to ensure that backwards compatibility is maintained for users who
|
||||||
|
|
||||||
### Shield Configuration Files
|
### Shield Configuration Files
|
||||||
|
|
||||||
|
|
||||||
Start by adding the dongle body to the shield configuration.
|
Start by adding the dongle body to the shield configuration.
|
||||||
|
|
||||||
```kconfig title="Kconfig.shield"
|
```kconfig title="Kconfig.shield"
|
||||||
|
@ -45,7 +44,6 @@ config SHIELD_MY_KEYBOARD_DONGLE
|
||||||
def_bool $(shields_list_contains,my_keyboard_dongle)
|
def_bool $(shields_list_contains,my_keyboard_dongle)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Next, add the dongle configuration to your keyboard's `Kconfig.defconfig`.
|
Next, add the dongle configuration to your keyboard's `Kconfig.defconfig`.
|
||||||
|
|
||||||
<Tabs
|
<Tabs
|
||||||
|
@ -60,56 +58,57 @@ values={[
|
||||||
```kconfig title="Kconfig.defconfig"
|
```kconfig title="Kconfig.defconfig"
|
||||||
if SHIELD_MY_KEYBOARD_DONGLE
|
if SHIELD_MY_KEYBOARD_DONGLE
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
default "My Board"
|
default "My Board"
|
||||||
|
|
||||||
config ZMK_SPLIT_ROLE_CENTRAL
|
config ZMK_SPLIT_ROLE_CENTRAL
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_SPLIT
|
config ZMK_SPLIT
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
|
||||||
# Increase the transmit power of the dongle
|
# Increase the transmit power of the dongle
|
||||||
config BT_CLTR_TX_PWR_PLUS_8
|
choice BT_CTLR_TX_PWR
|
||||||
default y
|
default BT_CTLR_TX_PWR_PLUS_8
|
||||||
|
endchoice
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if SHIELD_MY_KEYBOARD && !ZMK_SPLIT
|
if SHIELD_MY_KEYBOARD && !ZMK_SPLIT
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
default "My Board"
|
default "My Board"
|
||||||
endif
|
endif
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="split">
|
<TabItem value="split">
|
||||||
|
|
||||||
Add the following to your `Kconfig.defconfig` file.
|
Modify the following `Kconfig.defconfig` file to include the dongle in the split keyboard configuration.
|
||||||
|
|
||||||
```kconfig title="Kconfig.defconfig"
|
```kconfig title="Kconfig.defconfig"
|
||||||
if SHIELD_MY_KEYBOARD_DONGLE || SHIELD_MY_KEYBOARD_LEFT || SHIELD_MY_KEYBOARD_RIGHT
|
if SHIELD_MY_KEYBOARD_DONGLE || SHIELD_MY_KEYBOARD_LEFT || SHIELD_MY_KEYBOARD_RIGHT
|
||||||
|
|
||||||
config ZMK_SPLIT
|
config ZMK_SPLIT
|
||||||
default y
|
default y
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if SHIELD_MY_KEYBOARD_DONGLE
|
if SHIELD_MY_KEYBOARD_DONGLE
|
||||||
|
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
default "My Keyboard"
|
default "My Keyboard"
|
||||||
|
|
||||||
config ZMK_SPLIT_ROLE_CENTRAL
|
config ZMK_SPLIT_ROLE_CENTRAL
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
|
config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
|
||||||
default 2
|
default 2
|
||||||
|
|
||||||
# Increase the transmit power of the dongle
|
# Increase the transmit power of the dongle
|
||||||
choice BT_CTLR_TX_PWR
|
choice BT_CTLR_TX_PWR
|
||||||
default BT_CTLR_TX_PWR_PLUS_8
|
default BT_CTLR_TX_PWR_PLUS_8
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
endif
|
endif
|
||||||
```
|
```
|
||||||
|
@ -120,17 +119,17 @@ Modify the `Kconfig.defconfig` file to include the following:
|
||||||
|
|
||||||
if SHIELD_MY_KEYBOARD_LEFT
|
if SHIELD_MY_KEYBOARD_LEFT
|
||||||
|
|
||||||
# Setting this to y will make the left half the central
|
# Setting this to y will make the left half the central
|
||||||
# We want it to be the central when dongle is not used
|
# We want it to be the central when dongle is not used
|
||||||
config ZMK_SPLIT_ROLE_CENTRAL
|
config ZMK_SPLIT_ROLE_CENTRAL
|
||||||
default y
|
default y
|
||||||
|
|
||||||
# Check if the left half is the central
|
# Check if the left half is the central
|
||||||
if ZMK_SPLIT_ROLE_CENTRAL
|
if ZMK_SPLIT_ROLE_CENTRAL
|
||||||
config ZMK_KEYBOARD_NAME
|
config ZMK_KEYBOARD_NAME
|
||||||
default "My Keyboard"
|
default "My Keyboard"
|
||||||
|
|
||||||
endif # ZMK_SPLIT_ROLE_CENTRAL
|
endif # ZMK_SPLIT_ROLE_CENTRAL
|
||||||
|
|
||||||
endif # SHIELD_MY_KEYBOARD_LEFT
|
endif # SHIELD_MY_KEYBOARD_LEFT
|
||||||
```
|
```
|
||||||
|
@ -166,10 +165,11 @@ Your keyboard's matrix transform must be both defined and selected under the `ch
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Enabling the Dongle
|
## Enabling the Dongle
|
||||||
|
|
||||||
Now it is possible to enable the dongle in the user configuration.
|
When the above has been implemented in the keyboard definition.
|
||||||
|
|
||||||
|
The dongle can be enabled by implementing the following changes in the user config file.
|
||||||
|
|
||||||
For a split keyboard, change this
|
For a split keyboard, change this
|
||||||
|
|
||||||
|
@ -185,7 +185,6 @@ For a unibody keyboard, change this
|
||||||
CONFIG_ZMK_SPLIT=y
|
CONFIG_ZMK_SPLIT=y
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Building the firmware
|
## Building the firmware
|
||||||
|
|
||||||
Add the appropriate lines to your `build.yml` file to build the firmware for your dongle, in addition to the other parts of your keyboard.
|
Add the appropriate lines to your `build.yml` file to build the firmware for your dongle, in addition to the other parts of your keyboard.
|
||||||
|
@ -201,10 +200,10 @@ include:
|
||||||
shield: settings_reset
|
shield: settings_reset
|
||||||
```
|
```
|
||||||
|
|
||||||
|
:::warning
|
||||||
|
Before flashing your new firmware, flash the `settings_reset` [UF2 firmware](../troubleshooting/connection-issues.mdx#acquiring-a-reset-uf2) on all devices.
|
||||||
|
:::
|
||||||
:::note
|
:::note
|
||||||
Any microcontroller with BLE support can be used as a dongle.
|
Any microcontroller with BLE support can be used as a dongle.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
:::warning
|
|
||||||
Before flashing your new firmware, flash the `settings_reset` [UF2 firmware](../troubleshooting/connection-issues.mdx#acquiring-a-reset-uf2) on all devices.
|
|
||||||
:::
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue