A firmware for the Clueboard 66% Low Profile keyboard implemented in Rust.

Overview

Rust Firmware for Clueboard 66% Low Profile Keyboard

Photo of Clueboard 66% low profile keyboard

A firmware for the Clueboard 66% Low Profile keyboard (also known as 66% hotswap) implemented in pure Rust using Keyberon.

The Clueboard 66% LP uses a STM32F303 ARM Cortex-M4 microcontroller. It also has an IS31FL3731 for controlling white LEDs on each switch, and two speakers. I've not yet implemented support for the LED controller or speakers.

Building

Note: These instructions have only been tested on a Linux host.

Install the Rust compiler, ARM Cortex target, and cargo-binutils:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add thumbv7em-none-eabihf
rustup component add llvm-tools-preview
cargo install cargo-binutils

Install dfu-util:

sudo pacman -S dfu-util # or equivalent for your OS

Compile the firmware:

cargo objcopy --release -- -O binary clueboard.bin

Flashing

Enter DFU mode by pressing the FLASH button on the underside keyboard. Then flash it with dfu-util:

dfu-util -d 0483:df11 -a 0 --dfuse-address 0x08000000:leave -D clueboard.bin

Licence

This project is dual licenced under either of:

at your option.

You might also like...
A stupid macro that compiles and executes Rust and spits the output directly into your Rust code

inline-rust This is a stupid macro inspired by inline-python that compiles and executes Rust and spits the output directly into your Rust code. There

Learn-rust - An in-depth resource to learn Rust 馃

Learning Rust 馃 Hello friend! 馃憢 Welcome to my "Learning Rust" repo, a home for my notes as I'm learning Rust. I'm structuring everything into lesson

A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

Telegram bot help you to run Rust code in Telegram via Rust playground
Telegram bot help you to run Rust code in Telegram via Rust playground

RPG_BOT (Rust Playground Bot) Telegram bot help you to run Rust code in Telegram via Rust playground Bot interface The bot supports 3 straightforward

`Debug` in rust, but only supports valid rust syntax and outputs nicely formatted using pretty-please
`Debug` in rust, but only supports valid rust syntax and outputs nicely formatted using pretty-please

dbg-pls A Debug-like trait for rust that outputs properly formatted code Showcase Take the following code: let code = r#" [ "Hello, World!

Playing with web dev in Rust. This is a sample Rust microservice that can be deployed on Kubernetes.

Playing with web dev in Rust. This is a sample Rust microservice that can be deployed on Kubernetes.

馃悁 Building a federated alternative to reddit in rust

Lemmy A link aggregator / Reddit clone for the fediverse. Join Lemmy 路 Documentation 路 Report Bug 路 Request Feature 路 Releases 路 Code of Conduct About

Applied offensive security with Rust
Applied offensive security with Rust

Black Hat Rust - Early Access Deep dive into offensive security with the Rust programming language Buy the book now! Summary Whether in movies or main

Rholang runtime in rust

Rholang Runtime A rholang runtime written in Rust.

Comments
Owner
Wesley Moore
Developer with an interest in systems ranging from microcontrollers to web applications. Fan of Rust, Linux, and FreeBSD.
Wesley Moore
Turbo Resin: open-source firmware for resin printers

Turbo Resin: open-source firmware for resin printers Turbo Resin is an open-source firmware for chitu based controller board printers. It currently su

Nicolas Viennot 139 Dec 22, 2022
ESP32-C3 interfacing to a PS/2 Keyboard (bare-metal Rust)

ESP32-C3 interfacing to a PS/2 Keyboard (bare-metal Rust) Very simplified example of connecting a PS/2 keyboard to ESP32-C3 You need to build it with

Bj枚rn Quentin 3 Dec 5, 2022
A keyboard layout optimizer for layouts of the

Keyboard Layout Optimizer Neo variant layout optimizer written in rust. The optimizer is based on the "evolve-keyboard-layout" scripts by ArneBab. It

Dario G枚tz 29 Jan 4, 2023
Linux Advanced keyboard customizer

A multi-mode, rule-based keyboard customizer Features Key Remapping Execute command Install

绉嬭憠 3 Apr 4, 2022
Easier joystick, mouse and keyboard input handling in Bevy

Easier joystick, mouse and keyboard input handling in Bevy

Pedro Henrique 31 Dec 20, 2022
secmem-proc is a crate designed to harden a process against low-privileged attackers running on the same system trying to obtain secret memory contents of the current process.

secmem-proc is a crate designed to harden a process against low-privileged attackers running on the same system trying to obtain secret memory contents of the current process. More specifically, the crate disables core dumps and tries to disable tracing on unix-like OSes.

null 3 Dec 19, 2022
An implementation of Code Generation and Factoring for Fast Evaluation of Low-order Spherical Harmonic Products and Squares

sh_product An implementation of Code Generation and Factoring for Fast Evaluation of Low-order Spherical Harmonic Products and Squares (paper by John

Simon Brown 7 Dec 2, 2022
Telegram bot for searching in Arch User Repository ( AUR ); Implemented using rust.

AurSearchBot A Telegram Inline Search Bot Written in Rust Introduction Telegram Bot that can search AUR ( Arch User Repository ) in inline mode. This

AlenPaulVarghese 3 Feb 15, 2022
SPL Token-swap (AMM) implemented in Anchor

Anchor Example: Token Swap AMM SPL Token-swap (AMM) implemented in Anchor. Build, Deploy and Test First, install dependencies: $ npm install Make sur

iron_addicted_dog 56 Dec 17, 2022
First Git on Rust is reimplementation with rust in order to learn about rust, c and git.

First Git on Rust First Git on Rust is reimplementation with rust in order to learn about rust, c and git. Reference project This project refer to the

Nobkz 1 Jan 28, 2022