Skip to content

This is a Keyberon based firmware for the Nibble keyboard paired with different RP2040 boards.

Notifications You must be signed in to change notification settings

DrewTChrist/nibble-rp2040-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

This is a Keyberon based firmware for the Nibble keyboard paired with different RP2040 boards.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages