Cargo Features
[dependencies]
rmk = { version = "0.6.1", default-features = false, features = ["storage", "col2row", "defmt", "std", "async_matrix", "rapid_debouncer", "split", "nrf52840_ble", "nrf52833_ble", "nrf52832_ble", "nrf52811_ble", "nrf52810_ble", "esp32c3_ble", "esp32c6_ble", "esp32s3_ble", "rp2040_pio", "rp2040_bl", "adafruit_bl", "log", "critical-section"] }
- default = col2row, defmt, storage
-
These default features are set whenever
rmk
is added without
somewhere in the dependency tree.default-features = false - storage default = embedded-storage, embedded-storage-async
-
the storage is optional to save memory
Affects
rmk::storage
,rmk::initialize_encoder_keymap_and_storage
,rmk::initialize_keymap_and_storage
… - col2row default
-
If your PCB diode's direction is col2row, enable this feature. If it's row2col, disable this feature by
default-features = false
. - defmt default
-
Enable defmt feature
Enables defmt ^0.3, optional nrf-softdevice, use-defmt of postcard, defmt-03 of sequential-storage, defmt of usbd-hid, defmt-03 of embedded-hal, embedded-io-async, and optional embedded-hal-async, defmt of embassy-executor, embassy-futures, embassy-sync, embassy-time, embassy-usb, and optional embassy-nrf
- std
-
Add std feature for testing
Enables arch-std, executor-thread and task-arena-size-32768 of embassy-executor, generic-queue-128 and std of embassy-time, std of optional critical-section
- async_matrix
-
Enable async matrix scan
Enables embedded-hal-async
Affects
matrix::MatrixTrait.wait_for_key
… - rapid_debouncer
-
Use rapid debouncer
- split
-
Feature for split keyboard
Affects
rmk::split
… - nrf52840_ble = _nrf_ble
-
BLE feature flags
⚠️ Due to the limitation of docs.rs, functions gated by BLE features won't show in docs.rs. You have to head to
examples
folder of RMK repo for their usages. Enable feature if you want to use nRF52840 with BLE.Enables ble-central, nrf52840 and s140 of nrf-softdevice
- nrf52833_ble = _nrf_ble
-
Enable feature if you want to use nRF52833 with BLE.
Enables ble-central, nrf52833 and s140 of nrf-softdevice
- nrf52832_ble = _nrf_ble
-
Enable feature if you want to use nRF52832 with BLE.
Enables ble-central, nrf52832 and s132 of nrf-softdevice
- nrf52811_ble = _nrf_ble
-
Enable feature if you want to use nRF52811 with BLE.
Enables nrf52811 and s112 of nrf-softdevice
- nrf52810_ble = _nrf_ble
-
Enable feature if you want to use nRF52810 with BLE.
Enables nrf52810 and s112 of nrf-softdevice
- esp32c3_ble = _esp_ble
-
Enable feature if you want to use ESP32C3 with BLE.
- esp32c6_ble = _esp_ble
-
Enable feature if you want to use ESP32C6 with BLE.
- esp32s3_ble = _esp_ble
-
Enable feature if you want to use ESP32S3 with BLE.
- _ble _esp_ble? _nrf_ble?
-
Affects
channel::LED_SIGNAL
,rmk::ble
… - _esp_ble esp32c3_ble? esp32c6_ble? esp32s3_ble? = _ble
-
Enables std of ssmarshal and esp-idf-svc and esp32-nimble ^0.10
esp32-nimble:
Espressif dependencies
Affects
ble::esp
,config::RmkConfig.ble_battery_config
… - _nrf_ble adafruit_bl? nrf52810_ble? nrf52811_ble? nrf52832_ble? nrf52833_ble? nrf52840_ble? = _ble
-
Enables embassy-nrf, nrf-softdevice, and once_cell
once_cell:
Optional dependencies
nRF dependenciesAffects
ble::nrf
,config::RmkConfig.ble_battery_config
,adc::nrf
,split::nrf
… - rp2040_pio
-
Enable feature if you want to use RP2040 PIO UART
Enables embassy-hal-internal, embassy-rp, fixed, pio, and rp-pac
embassy-rp:
RP2040 dependencies
Affects
split::rp
… - rp2040_bl
-
Enable feature if you want rp2040 bootloader jumping key
Enables embassy-rp
- adafruit_bl = _nrf_ble
-
Enable feature if you're using Adafruit nRF52 bootloader and want bootloader jumping key
Features from optional dependencies
In crates that don't use the dep:
syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.
- embedded-storage storage
- embedded-storage-async storage
- log implicit feature
-
Enables log
log:
A lightweight logging facade for Rust
- critical-section implicit feature
-
Enables critical-section
critical-section:
Cross-platform critical section