Supported Hardwares

Leveraging the great Rust embedded ecosystem, RMK is able to support a wide range of hardware across different architectures, including Cortex-M, Xtensa, and RISC-V.

Below is a (non-exhaustive) list of the currently supported hardware:

HardwareArchitecturesConnectivityTested on HardwareExamplesNote
STM32Cortex-M0/3/4/7USBPartial (F1/F4/H7)Supported on all models with USB peripheral
ESP32C3RISC-VBLEESP32-C3 lacks full USB functionality
ESP32C6RISC-VBLEESP32-C6 lacks full USB functionality
ESP32S3XtensaUSB + BLE
RP2040Cortex-M0+USB + BLEBLE is available on the Raspberry Pi Pico W
RP2350Cortex-M33/RISC-VUSB + BLEBLE is available on the Raspberry Pi Pico 2 W
nRF52840/33Cortex-M4FUSB + BLE-
nRF52832Cortex-M4FBLE-
nRF52820Cortex-M4USB + BLE--not tested
nRF52810/05Cortex-M4BLE--not tested
PY32F07XCortex-M0+USBStorage support is currently unavailable
SF32LB52Cortex-M33USB + BLEBLE support is currently unavailable

Adding Support for New Hardware

RMK can run on any hardware platform with Embassy support. To enable specific communication:

  • USB Support: Requires implementation of embassy-usb-driver traits.
  • BLE Support: Requires implementation of bt-hci traits.

Once your hardware has the corresponding trait implementations, RMK support will be available out of the box.