This firmware written in Rust is targetted for the Ferris keyboard built with a STM32F072 MCU and a MCP23017 IO expander.
It is based on the Keyberon library.
- Multi layers keymaps
- Multiple keymaps
- Different Ferris models
- Hold Tap actions
- No support for controlling the mouse
- No RGB (support is in keyberon but not implemented here)
- Sequences
- One Shot Actions
- ...
Considering one has rust installed by rustup.rs, then one has to run the following commands:
cargo install cargo-binutils
rustup component add llvm-tools-preview
The name of the model to flash is set a cargo feature. The possible names are:
bling
compact
mini
high
The possible keymaps are:
keymap_basic
keymap_borisfaure
keymap_pierrec83
Some of them were converted with help from the tool qmk-layout-to-keyberon.
In order to generate and install the firmware for the mini
model and the
keymap keymap_basic
:
cargo objcopy --release --no-default-features --features="mini,keymap_basic" -- -O binary ferris-firmware.bin
dfu-util -d 0483:DF11 -a 0 -s 0x08000000:leave -D ferris-firmware.bin