Skip to content

Latest commit

 

History

History
86 lines (62 loc) · 3.14 KB

README.md

File metadata and controls

86 lines (62 loc) · 3.14 KB

nibble-rp2040-rs

Description

This is a firmware created with keyberon for the nibble keyboard paired with an adafruit kb2040. With slight modification to the code this firmware would likely work with the Sparkfun RP2040 Pro Micro as well. The Nibble is typically built with a Bit-C or other Pro Micro compatible variant. There is currently no official QMK support for the RP2040 chip.

Table of Contents

  1. Installation
  2. Usage
  3. Supported Features
  4. Build Photos

Installation

Dependencies

To build this firmware you will need to install the proper Rust target architecture and flip-link and elfuf2-rs.

rustup target install thumbv6m-none-eabi
cargo install flip-link
cargo install elf2uf2-rs

Building the Firmware

Clone this repository in any directory

git clone https://github.com/drewtchrist/nibble-rp2040-rs
cd nibble-rp2040-rs

Putting the KB2040 into bootloader mode and executing the following command will build the firmware and put it onto the device

cargo run --release

Alternatively there is a prebuilt uf2 firmware in the repo that can be moved onto the virtual drive of the RP2040 when it is put into bootloader mode.

Usage

The layout can be configured in src/layout.rs before flashing to the KB2040.

Supported Features

  • OLED display

This needs worked on still.

The KB2040 comes with a Stemma QT/Qwiic connector which I have personally used to wire up my OLED display. This required a bit of modification to the FR4 plate to get the cable to seat all the way. While this firmware is programmed to use the Stemma QT port the OLED display could likely be wired up the original way it was intended to be.

There are currently no fancy dislay animations like bongocat or snail map. I hope to try supporting them at some point. Right now the OLED just says "Powered by Rust".

  • Underglow LEDs

Underwglow LEDs are customizable. They default to a solid purple, but no other patterns or colors have been programmed in. I tend to leave them off.

  • KB2040 Neopixel

The KB2040 comes with an onboard RGB LED (Neopixel) that works as the caps lock indicator. The default is green (off), red (on) and this can be customized however. There is an issue currently where certain RTIC tasks, namely the OLED task makes this lag a bit. Caps lock always works regardless of the Neopixel changing and it works correctly for the most part.

  • Rotary Encoder

The rotary encoder works both as a switch when pressed and when turned either direction. This is set to up and down arrow by default. The current caveat with the rotary encoder is the actions need to be defined in the layout somewhere even if it isn't a desired key. There are transparent actions in the layout array for padding and those can be filled with the desired key presses for the encoder.

Build Photos

KB2040 Close Up Keyboard without lights Keyboard with lights