Skip to content

Firmware written in Rust for the Ferris keyboard

License

Notifications You must be signed in to change notification settings

borisfaure/ferris-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI

Rust Firmware for the Ferris keyboard

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.

Ferris Bling Keyboard

Features

  • Multi layers keymaps
  • Multiple keymaps
  • Different Ferris models
  • Hold Tap actions

What's missing

  • No support for controlling the mouse
  • No RGB (support is in keyberon but not implemented here)
  • Sequences
  • One Shot Actions
  • ...

Installing the needed tools

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

Compile & Flashing

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