info.json
Reference
The information contained in info.json
is combined with the config.h
and rules.mk
files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the QMK API, and contains the information QMK Configurator needs to display a representation of your keyboard. Its key/value pairs are ruled by the data/schemas/keyboard.jsonschema
file. To learn more about the why and how of the schema file see the Data Driven Configuration page.
You can create info.json
files at every level under qmk_firmware/keyboards/<keyboard_name>
. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, qmk_firmware/keyboards/clueboard/info.json
specifies information common to all Clueboard products, such as manufacturer
and maintainer
, while qmk_firmware/keyboards/clueboard/66/info.json
contains more specific information about Clueboard 66%.
General Metadata
keyboard_name
String Required- A free-form text string describing the keyboard. This will be used as the USB product string. Can include Unicode characters, escaped to ASCII eg.
\u03A8
(Ψ). - Example:
"Clueboard 66%"
- A free-form text string describing the keyboard. This will be used as the USB product string. Can include Unicode characters, escaped to ASCII eg.
maintainer
String Required- GitHub username of the maintainer, or
qmk
for community maintained boards. - Example:
"skullydazed"
- GitHub username of the maintainer, or
manufacturer
String Required- A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg.
\u03A8
(Ψ). - Example:
"Clueboard"
- A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg.
url
String Required- A URL to the keyboard's product page, QMK.fm/keyboards page, or other page describing information about the keyboard.
- Example:
"https://clueboard.co"
bootloader_instructions
String- Instructions for putting the keyboard into a mode that allows for firmware flashing.
- Example:
"Press the button marked RESET on the back of the PCB"
tags
Array: String- A list of tags describing the keyboard.
- Example:
["ortho", "split", "rgb"]
Hardware Configuration
board
String- Override the default ChibiOS board name (ARM-based keyboards only).
- Example:
"BLACKPILL_STM32_F411"
bootloader
String- The bootloader in use on the keyboard. Required if
development_board
is not specified.
- The bootloader in use on the keyboard. Required if
development_board
String- The microcontroller development board, if applicable.
- Example:
"promicro"
pin_compatible
String- The form factor of the development board, if applicable. Must be one of
elite_c
,promicro
.
- The form factor of the development board, if applicable. Must be one of
processor
String- The microcontroller in use on the keyboard. Required if
development_board
is not specified.
- The microcontroller in use on the keyboard. Required if
Firmware Configuration
build
debounce_type
String- The debounce algorithm to use. Must be one of
asym_eager_defer_pk
,custom
,sym_defer_g
,sym_defer_pk
,sym_defer_pr
,sym_eager_pk
,sym_eager_pr
.
- The debounce algorithm to use. Must be one of
firmware_format
String- The format of the final output binary. Must be one of
bin
,hex
,uf2
.
- The format of the final output binary. Must be one of
lto
Boolean- Enable Link-Time Optimization.
- Default:
false
features
Object: Boolean- A dictionary of features to enable or disable.
- Example:
json{ "rgb_matrix": true, "rgblight": false }
qmk
locking
enabled
Boolean- Enable locking switch support.
- Default:
false
resync
Boolean- Keep switch state consistent with keyboard LED state.
- Default:
false
tap_capslock_delay
Number- The delay between keydown and keyup for Caps Lock tap events in milliseconds.
- Default:
80
(80 ms)
tap_keycode_delay
Number- The delay between keydown and keyup for tap events in milliseconds.
- Default:
0
(no delay)
tapping
hold_on_other_key_press
Boolean- Default:
false
- Default:
hold_on_other_key_press_per_key
Boolean- Default:
false
- Default:
permissive_hold
Boolean- Default:
false
- Default:
permissive_hold_per_key
Boolean- Default:
false
- Default:
retro
Boolean- Default:
false
- Default:
retro_per_key
Boolean- Default:
false
- Default:
term
Number- Default:
200
(200 ms)
- Default:
term_per_key
Boolean- Default:
false
- Default:
toggle
Number- Default:
5
- Default:
APA102
Configures the APA102 driver.
apa102
clock_pin
Pin Required- The GPIO pin connected to
CI
on the first LED in the chain.
- The GPIO pin connected to
data_pin
Pin Required- The GPIO pin connected to
DI
on the first LED in the chain.
- The GPIO pin connected to
default_brightness
Number- The initial global brightness level (independent of the RGB data), from 0 to 31.
- Default:
31
Audio
Configures the Audio feature.
audio
default
on
Boolean- The default audio enabled state.
- Default:
true
clicky
Boolean- The default audio clicky enabled state.
- Default:
true
driver
String- The driver to use. Must be one of
dac_additive
,dac_basic
,pwm_software
,pwm_hardware
.
- The driver to use. Must be one of
macro_beep
Boolean- Play a short beep for
\a
(ASCIIBEL
) characters in Send String macros. - Default:
false
- Play a short beep for
pins
Array: Pin Required- The GPIO pin(s) connected to the speaker(s).
power_control
on_state
0|1- The logical GPIO state required to turn the speaker on.
- Default:
1
(on = high)
pin
Pin- The GPIO pin connected to speaker power circuit.
voices
Boolean- Use multiple audio voices.
- Default:
false
Backlight
Configures the Backlight feature.
backlight
as_caps_lock
Boolean- Use the backlight as a Caps Lock indicator.
- Default:
false
breathing
Boolean- Whether backlight breathing is enabled.
- Default:
false
breathing_period
Number- The length of one backlight breathing cycle in seconds.
- Default:
6
(6 seconds)
default
on
Boolean- The default backlight enabled state.
- Default:
true
breathing
Boolean- The default backlight breathing state.
- Default:
false
brightness
Number- The default brightness level.
- Default:
max_brightness
driver
String- The driver to use. Must be one of
custom
,pwm
,software
,timer
. - Default:
"pwm"
- The driver to use. Must be one of
levels
Number- The number of brightness levels (excluding off), from 1 to 31.
- Default:
3
max_brightness
Number- The maximum PWM value which brightness is scaled to, from 0 to 255.
- Default:
255
on_state
0|1- The logical GPIO state required to turn the LEDs on.
- Default:
1
(on = high)
pin
Pin- The GPIO pin connected to the backlight circuit.
pins
Array: Pin- A list of GPIO pins connected to the backlight LEDs (
software
andtimer
drivers only).
- A list of GPIO pins connected to the backlight LEDs (
Bluetooth
Configures the Bluetooth feature.
bluetooth
driver
String- The driver to use. Must be one of
custom
,bluefruit_le
,rn42
.
- The driver to use. Must be one of
Bootmagic
Configures the Bootmagic feature.
bootmagic
enabled
Boolean- Enables the Bootmagic feature.
- Default:
false
matrix
Matrix- The matrix position of the key to check during startup. This should generally be set to the (physically) top left key.
- Default:
[0, 0]
Caps Word
Configures the Caps Word feature.
caps_word
both_shifts_turns_on
Boolean- Activate Caps Word by pressing both Shift keys.
- Default:
false
double_tap_shift_turns_on
Boolean- Activate Caps Word by pressing Left Shift twice.
- Default:
false
enabled
Boolean- Enables the Caps Word feature.
- Default:
false
idle_timeout
Number- The amount of time before Caps Word automatically deactivates in milliseconds.
- Default:
5000
(5 seconds)
invert_on_shift
Boolean- Invert shift state instead of deactivating Caps Word when Shift is pressed.
- Default:
false
Combo
Configures the Combo feature.
combo
term
Number- The amount of time to recognize a combo in milliseconds.
- Default:
50
(50 ms)
DIP Switches
Configures the DIP Switches feature.
dip_switch
enabled
Boolean- Enable the DIP Switches feature.
- Default:
false
pins
Array: Pin- A list of GPIO pins connected to the MCU.
matrix_grid
Array: Matrix- A list of matrix locations in the key matrix.
- Example:
[ [0,6], [1,6], [2,6] ]
EEPROM
Configures the EEPROM driver.
eeprom
driver
String- The EEPROM backend to use. Must be one of
custom
,i2c
,legacy_stm32_flash
,spi
,transient
,vendor
,wear_leveling
. - Default:
"vendor"
- The EEPROM backend to use. Must be one of
wear_leveling
driver
String- The driver to use. Must be one of
embedded_flash
,legacy
,rp2040_flash
,spi_flash
,custom
.
- The driver to use. Must be one of
backing_size
Number- Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
logical_size
Number- Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM.
Encoder
Configures the Encoder feature.
encoder
rotary
Array: Object- A list of encoder objects.
pin_a
Pin Required- The GPIO pin connected to the encoder's
A
pin.
- The GPIO pin connected to the encoder's
pin_b
Pin Required- The GPIO pin connected to the encoder's
B
pin.
- The GPIO pin connected to the encoder's
resolution
Number- The number of edge transitions on both pins required to register an input.
- Default:
4
- A list of encoder objects.
Indicators
Configures the LED Indicators feature.
indicators
caps_lock
Pin- The GPIO pin connected to the Caps Lock LED.
compose
Pin- The GPIO pin connected to the Compose LED.
kana
Pin- The GPIO pin connected to the Kana LED.
num_lock
Pin- The GPIO pin connected to the Num Lock LED.
on_state
0|1- The logical GPIO state required to turn the LEDs on.
- Default:
1
(on = high)
scroll_lock
Pin- The GPIO pin connected to the Scroll Lock LED.
Layouts
The layouts
portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout names, for example LAYOUT_60_ansi
or LAYOUT_60_iso
.
Each key dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data format for Keyboard Layout Editor, you will find many of the concepts the same. Key names and layout choices are reused wherever possible, but unlike KLE each key is stateless, inheriting no properties from the keys that came before it.
All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key.
The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize info.json layout data (such as qmk info -l
and the QMK Configurator) should display this key as expected.
community_layouts
Array: String- A list of community layouts supported by the keyboard.
- Example:
["60_ansi", "60_iso"]
layout_aliases
Object: String- A mapping of layout aliases to layout definitions.
- Example:
json{ "LAYOUT_ansi": "LAYOUT_60_ansi", "LAYOUT_iso": "LAYOUT_60_iso" }
layouts
Object- A dictionary of layouts supported by the keyboard.
LAYOUT_<layout_name>
Objectlayout
Array: Object- A list of key dictionaries comprising the layout. Each key dictionary contains:
matrix
Matrix Required- The matrix position for the key.
- Example:
[0, 4]
(row 0, column 4)
x
KeyUnit Required- The absolute position of the key in the horizontal axis, in key units.
y
KeyUnit Required- The absolute position of the key in the vertical axis, in key units.
h
KeyUnit- The height of the key, in key units.
- Default:
1
(1u)
label
String- What to name the key. This is not a key assignment as in the keymap, but should usually correspond to the keycode for the first layer of the default keymap.
- Example:
"Escape"
r
Number- The rotation angle in degrees. Currently not implemented.
rx
Number- The absolute X position of the rotation axis. Currently not implemented.
ry
Number- The absolute Y position of the rotation axis. Currently not implemented.
w
KeyUnit- The width of the key, in key units.
- Default:
1
(1u)
encoder
Number- The index of an encoder this key should be linked to
- Example:
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}
- A list of key dictionaries comprising the layout. Each key dictionary contains:
Leader Key
Configures the Leader Key feature.
leader_key
timing
Boolean- Reset the
timeout
on each keypress. - Default:
false
- Reset the
strict_processing
Boolean- Do not extract the tap keycodes from Layer-Tap and Mod-Tap key events.
- Default:
false
timeout
Number- The amount of time to complete a leader sequence in milliseconds.
- Default:
300
(300 ms)
LED Matrix
Configures the LED Matrix feature.
led_matrix
animations
Object: Boolean- A dictionary of effects to enable or disable. Effects which are absent default to
false
. - Example:
json{ "alphas_mods": true, "breathing": true, "cycle_left_right": false }
- A dictionary of effects to enable or disable. Effects which are absent default to
center_point
Array: Number- The centroid (geometric center) of the LEDs. Used for certain effects.
- Default:
[112, 32]
default
animation
String- The default effect. Must be one of
led_matrix.animations
- Default:
"solid"
- The default effect. Must be one of
on
Boolean- The default enabled state.
- Default:
true
val
Number- The default brightness level.
- Default:
max_brightness
speed
Number- The default animation speed.
- Default:
128
driver
String Required- The driver to use. Must be one of
custom
,is31fl3218
,is31fl3731
,is31fl3733
,is31fl3736
,is31fl3737
,is31fl3741
,is31fl3742a
,is31fl3743a
,is31fl3745
,is31fl3746a
,snled27351
.
- The driver to use. Must be one of
layout
Array: Object Required- List of LED configuration dictionaries. Each dictionary contains:
flags
Number Required- A bitfield of flags describing the type of LED.
x
Number Required- The position of the LED in the horizontal axis, from 0 to 224.
y
Number Required- The position of the LED in the vertical axis, from 0 to 64.
matrix
Matrix- The key matrix position associated with the LED.
- Example:
[0, 2]
- Example:
{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}
- List of LED configuration dictionaries. Each dictionary contains:
led_flush_limit
Number- Limits in milliseconds how frequently an animation will update the LEDs.
- Default:
16
led_process_limit
Number- Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
- Default:
led_count / 5
max_brightness
Number- The maximum value which brightness is scaled to, from 0 to 255.
- Default:
255
react_on_keyup
Boolean- Animations react to keyup instead of keydown.
- Default:
false
sleep
Boolean- Turn off the LEDs when the host goes to sleep.
- Default:
false
speed_steps
Number- The number of speed adjustment steps.
- Default:
16
split_count
Array: Number- For split keyboards, the number of LEDs on each half.
- Example:
[16, 16]
timeout
Number- The LED activity timeout in milliseconds.
- Default:
0
(no timeout)
val_steps
Number- The number of brightness adjustment steps.
- Default:
8
Matrix
debounce
Number- The debounce time in milliseconds.
- Default:
5
(5 ms)
diode_direction
String- Which way the diodes are "pointing". Unused for
matrix_pins.direct
. Must be one ofCOL2ROW
,ROW2COL
.
- Which way the diodes are "pointing". Unused for
matrix_pins
cols
Array: Pin- A list of GPIO pins connected to the matrix columns.
- Example:
["A0", "A1", "A2"]
custom
Boolean- Whether to use a custom matrix scanning implementation.
- Default:
false
custom_lite
Boolean- Whether to use a "lite" custom matrix scanning implementation.
- Default:
false
direct
Array: Array: Pin- A 2-dimensional list of GPIO pins connected to each keyswitch, forming the "matrix" rows and columns.
- Example:
json[ ["A0", "A1", "A2"], ["B0", "B1", "B2"], ["C0", "C1", "C2"] ]
ghost
Boolean- Whether the matrix has no anti-ghosting diodes.
- Default:
false
input_pressed_state
0|1- The logical GPIO state of the input pins when a key is pressed.
- Default:
0
(pressed = low)
io_delay
Number- The amount of time to wait between row/col selection and col/row pin reading, in microseconds.
- Default:
30
(30 µs)
rows
Array: Pin- A list of GPIO pins connected to the matrix rows.
- Example:
["B0", "B1", "B2"]
Mouse Keys
Configures the Mouse Keys feature.
mouse_key
delay
Numberenabled
Boolean- Enables the Mouse Keys feature.
- Default:
false
interval
Numbermax_speed
Numbertime_to_max
Numberwheel_delay
Number
One Shot
Configures One Shot keys.
oneshot
tap_toggle
Number- The number of times to tap the key in order to hold it.
timeout
Number- The amount of time before the key is released in milliseconds.
PS/2
Configures the PS/2 feature.
ps2
clock_pin
Pin- The GPIO pin connected to
CLK
on the PS/2 device.
- The GPIO pin connected to
data_pin
Pin- The GPIO pin connected to
DATA
on the PS/2 device.
- The GPIO pin connected to
driver
String- The PS/2 driver to use. Must be one of
busywait
,interrupt
,usart
,vendor
. - Default:
"busywait"
- The PS/2 driver to use. Must be one of
enabled
Boolean- Enable the PS/2 feature.
- Default:
false
mouse_enabled
Boolean- Enable the PS/2 mouse handling.
- Default:
false
QMK LUFA Bootloader
qmk_lufa_bootloader
esc_input
Pin Required- The GPIO pin connected to the designated "exit bootloader" key's row (if
COL2ROW
).
- The GPIO pin connected to the designated "exit bootloader" key's row (if
esc_output
Pin Required- The GPIO pin connected to the designated "exit bootloader" key's column (if
COL2ROW
).
- The GPIO pin connected to the designated "exit bootloader" key's column (if
led
Pin- The GPIO pin connected to an LED to flash.
speaker
Pin- The GPIO pin connected to a speaker to click (can also be used for a second LED).
RGBLight
Configures the RGB Lighting feature.
rgblight
led_count
Number Required- The number of LEDs in the chain.
animations
Object: Boolean- A dictionary of effects to enable or disable. Effects which are absent default to
false
. - Example:
json{ "breathing": true, "rainbow_mood": true, "snake": false }
- A dictionary of effects to enable or disable. Effects which are absent default to
brightness_steps
Number- The number of brightness adjustment steps.
- Default:
17
default
animation
String- The default effect. Must be one of
rgblight.animations
- Default:
"static_light"
- The default effect. Must be one of
on
Boolean- The default enabled state.
- Default:
true
hue
Number- The default hue value.
- Default:
0
sat
Number- The default saturation value.
- Default:
255
val
Number- The default brightness level.
- Default:
max_brightness
speed
Number- The default animation speed.
- Default:
0
driver
String- The driver to use. Must be one of
apa102
,custom
,ws2812
. - Default:
"ws2812"
- The driver to use. Must be one of
hue_steps
Number- The number of hue adjustment steps.
- Default:
8
layers
blink
Boolean- Enable layer blinking API.
- Default:
false
enabled
Boolean- Enable RGB Lighting Layers.
- Default:
false
max
Number- The maximum layer count, from 1 to 32.
- Default:
8
led_map
Array: Number- Remap LED indices.
- Example:
[4, 3, 2, 1, 0]
max_brightness
Number- The maximum value which the HSV "V" component is scaled to, from 0 to 255.
- Default:
255
saturation_steps
Number- The number of saturation adjustment steps.
- Default:
17
sleep
Boolean- Turn off the LEDs when the host goes to sleep.
- Default:
false
split
Boolean- Enable synchronization between split halves.
- Default:
false
split_count
Array: Number- When
rgblight.split
is enabled, the number of LEDs on each half. - Example:
[10, 10]
- When
RGB Matrix
Configures the RGB Matrix feature.
rgb_matrix
animations
Object: Boolean- A dictionary of effects to enable or disable. Effects which are absent default to
false
. - Example:
json{ "alphas_mods": true, "breathing": true, "cycle_left_right": false }
- A dictionary of effects to enable or disable. Effects which are absent default to
center_point
Array: Number- The centroid (geometric center) of the LEDs. Used for certain effects.
- Default:
[112, 32]
default
animation
String- The default effect. Must be one of
rgb_matrix.animations
- Default:
"solid_color"
- The default effect. Must be one of
on
Boolean- The default enabled state.
- Default:
true
hue
Number- The default hue value.
- Default:
0
sat
Number- The default saturation value.
- Default:
255
val
Number- The default brightness level.
- Default:
max_brightness
speed
Number- The default animation speed.
- Default:
128
driver
String Required- The driver to use. Must be one of
aw20216s
,custom
,is31fl3218
,is31fl3236
,is31fl3729
,is31fl3731
,is31fl3733
,is31fl3736
,is31fl3737
,is31fl3741
,is31fl3742a
,is31fl3743a
,is31fl3745
,is31fl3746a
,snled27351
,ws2812
.
- The driver to use. Must be one of
hue_steps
Number- The number of hue adjustment steps.
- Default:
8
layout
Array: Object Required- List of LED configuration dictionaries. Each dictionary contains:
flags
Number Required- A bitfield of flags describing the type of LED.
x
Number Required- The position of the LED in the horizontal axis, from 0 to 224.
y
Number Required- The position of the LED in the vertical axis, from 0 to 64.
matrix
Matrix- The key matrix position associated with the LED.
- Example:
[0, 2]
- Example:
{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}
- List of LED configuration dictionaries. Each dictionary contains:
led_flush_limit
Number- Limits in milliseconds how frequently an animation will update the LEDs.
- Default:
16
led_process_limit
Number- Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
- Default:
led_count / 5
max_brightness
Number- The maximum value which the HSV "V" component is scaled to, from 0 to 255.
- Default:
255
react_on_keyup
Boolean- Animations react to keyup instead of keydown.
- Default:
false
sat_steps
Number- The number of saturation adjustment steps.
- Default:
16
sleep
Boolean- Turn off the LEDs when the host goes to sleep.
- Default:
false
speed_steps
Number- The number of speed adjustment steps.
- Default:
16
split_count
Array: Number- For split keyboards, the number of LEDs on each half.
- Example:
[16, 16]
timeout
Number- The LED activity timeout in milliseconds.
- Default:
0
(no timeout)
val_steps
Number- The number of brightness adjustment steps.
- Default:
16
Secure
Configures the Secure feature.
secure
enabled
Boolean- Enable the Secure feature.
- Default:
false
idle_timeout
Number- Timeout while unlocked before returning to the locked state. Set to
0
to disable. - Default:
60000
(1 minute)
- Timeout while unlocked before returning to the locked state. Set to
unlock_sequence
Array: Matrix- A list of up to five matrix locations comprising the "unlock sequence".
- Example:
[[0, 0], [0, 1], [4, 3]]
unlock_timeout
Number- Timeout for the user to perform the unlock sequence. Set to
0
to disable. - Default:
5000
(5 seconds)
- Timeout for the user to perform the unlock sequence. Set to
Split Keyboard
Configures the Split Keyboard feature.
split
bootmagic
matrix
- See Bootmagic config.
dip_switch
right
pins
- See DIP Switches config.
enabled
Boolean- Enable the Split Keyboard feature.
- Default:
false
encoder
right
rotary
- See Encoder config.
handedness
pin
Pin- The GPIO pin connected to determine handedness.
matrix_grid
Array: Pin- The GPIO pins of the matrix position which determines the handedness.
- Example:
["A1", "B5"]
matrix_pins
right
- See Matrix config.
serial
driver
String- The driver to use. Must be one of
bitbang
,usart
,vendor
. - Default:
"bitbang"
- The driver to use. Must be one of
pin
Pin- The GPIO pin to use for transmit and receive.
soft_serial_speed
Number- The protocol speed, from
0
to5
(serial
transport protocol only). - Default:
1
- The protocol speed, from
transport
protocol
String- The split transport protocol to use. Must be one of
custom
,i2c
,serial
.
- The split transport protocol to use. Must be one of
sync
activity
Boolean- Mirror the activity timestamps to the secondary half.
- Default:
false
detected_os
Boolean- Mirror the detected OS to the secondary half.
- Default:
false
haptic
Boolean- Mirror the haptic state and process haptic feedback to the secondary half.
- Default:
false
layer_state
Boolean- Mirror the layer state to the secondary half.
- Default:
false
indicators
Boolean- Mirror the indicator state to the secondary half.
- Default:
false
matrix_state
Boolean- Mirror the main/primary half's matrix state to the secondary half.
- Default:
false
modifiers
Boolean- Mirror the modifier state to the secondary half.
- Default:
false
oled
Boolean- Mirror the OLED on/off status to the secondary half.
- Default:
false
st7565
Boolean- Mirror the ST7565 on/off status to the secondary half.
- Default:
false
wpm
Boolean- Mirror the current WPM value to the secondary half.
- Default:
false
watchdog
Boolean- Reboot the secondary half if it loses connection.
- Default:
false
watchdog_timeout
Number- The amount of time to wait for communication from the primary half in milliseconds.
usb_detect
enabled
Boolean- Detect USB connection when determining split half roles.
polling_interval
Number- The polling frequency in milliseconds.
- Default:
10
(10 ms)
timeout
Number- The amount of time to wait for a USB connection in milliseconds.
- Default:
2000
(2 seconds)
Stenography
Configures the Stenography feature.
stenography
enabled
Boolean- Enable the Stenography feature.
- Default:
false
protocol
String- The Steno protocol to use. Must be one of
all
,geminipr
,txbolt
. - Default:
"all"
- The Steno protocol to use. Must be one of
USB
usb
device_version
String Required- A BCD version number in the format
MM.m.r
(up to99.9.9
). - Example:
"1.0.0"
- A BCD version number in the format
pid
String Required- The USB product ID as a four-digit hexadecimal number.
- Example:
"0x23B0"
vid
String Required- The USB vendor ID as a four-digit hexadecimal number.
- Example:
"0xC1ED"
force_nkro
Boolean- Force NKRO to be active.
- Default:
false
max_power
Number- The maximum current draw the host should expect from the device. This does not control the actual current usage.
- Default:
500
(500 mA)
no_startup_check
Boolean- Disable USB suspend check after keyboard startup.
- Default:
false
polling_interval
Number- The frequency at which the host should poll the keyboard for reports.
- Default:
1
(1 ms/1000 Hz)
shared_endpoint
keyboard
Boolean- Send keyboard reports through the "shared" USB endpoint.
- Default:
false
mouse
Boolean- Send mouse reports through the "shared" USB endpoint.
- Default:
true
suspend_wakeup_delay
Number- The amount of time to wait after sending a wakeup packet, in milliseconds.
- Default:
0
(disabled)
wait_for_enumeration
Boolean- Force the keyboard to wait for USB enumeration before starting up.
- Default:
false
WS2812
Configures the WS2812 driver.
ws2812
driver
String- The driver to use. Must be one of
bitbang
,custom
,i2c
,pwm
,spi
,vendor
. - Default:
"bitbang"
- The driver to use. Must be one of
pin
Pin Required- The GPIO pin connected to
DI
on the first LED in the chain (bitbang
,pwm
,spi
andvendor
drivers only).
- The GPIO pin connected to
i2c_address
String- The I²C address of the WS2812 controller (
i2c
driver only). - Default:
"0xB0"
- The I²C address of the WS2812 controller (
i2c_timeout
Number- The I²C timeout in milliseconds (
i2c
driver only). - Default:
100
(100 ms)
- The I²C timeout in milliseconds (
rgbw
Boolean- Enable RGBW LEDs.
- Default:
false