Update readme

This commit is contained in:
Christoffer Martinsson 2025-09-18 14:40:46 +02:00
parent 6530b4adf8
commit dd1f9cd918

View File

@ -30,24 +30,24 @@ _This HW(PCB) was original made for use with the TeensyLC module and is reused b
------------------- ------------------- ------------------- -------------------
``` ```
## Features ## Firmware features
- 42 keys "Split" keyboard layout. 36 finger buttons and 6 thumb buttons. - 42 key split layout (36 finger keys + 6 thumb keys) with a Swedish-centric NKRO HID mapping across three layers.
- Extreme low profile (only one pcb). - Function layer system with two Fn keys (40/43/44) enabling sticky lock, OS lock and deep modifier combos without ghosting.
- Cost efficient solution with one pcb and one 3D printed cover. - High-speed matrix scanning (250µs cadence) with scan-based debounce, per-key press spacing protection and idle/suspend rate throttling.
- Function layers provide three active maps (primary + two Fn layers) with sticky-lock support. - Bootloader entry options including `Fn+Fn+LCtrl+LShift+RShift` runtime chord and power-on detection on button index 0.
- High-speed key scanning: 250µs cadence with enhanced 5-scan debounce (1.25ms) and anti-bounce protection to prevent double characters. - Status LED heartbeat derived from joystick firmware: startup heartbeat, activity/idle transitions, sticky-state colors, Caps Lock flash, suspend blanking and error signalling.
- Status indication driven by the joystick-style heartbeat model: - Power-aware USB handling that drops scan frequency 20× during suspend while honouring wake-on-input and immediate resume.
- Heartbeat green while waiting for USB enumeration.
- Solid green during normal operation; automatic heartbeat idle animation after 5s inactivity. ## Install script (`install.sh`)
- Blue solid / flashing when sticky lock is armed / latched.
- Red solid on firmware error, red flashing for Caps Lock. The repository includes a host automation helper for the RP2040 firmware.
- LED turns off during USB suspend for power savings.
- Power management for USB suspend/resume: - Quick start: `./install.sh check` (compilation + clippy) or `./install.sh test` (full suite including host-side tests).
- Automatic power saving when USB host suspends device. - Flashing: `./install.sh flash --local` for direct UF2 copy on Linux/macOS, or `./install.sh flash --ssh --target user@host --mount /path` for remote deployments.
- Reduced key scanning frequency (20x slower) during suspend. - Cleaning: `./install.sh clean` removes cargo artefacts, generated binaries and UF2 images.
- Wake-on-input detection for any key press. - Prerequisites are validated automatically (Rust toolchain, `thumbv6m-none-eabi`, `cargo-binutils`, `uf2conv.py`, optional SSH settings).
- Immediate resume response when keys are pressed. - Script output uses colour-coded sections for readability and fails fast on missing dependencies or connectivity issues.
## Build environment rp2040 Zero ## Build environment rp2040 Zero
@ -55,10 +55,11 @@ Rust embedded, rp2040 HAL
- Cargo (cargo.toml) - Cargo (cargo.toml)
- rustup target add thumbv6m-none-eabi - rustup target add thumbv6m-none-eabi
- cargo install elf2uf2-rs --locked - Use install script to flash device
- Flashing via rp2040 USB bootloader - Flashing via rp2040 USB bootloader
- Pressing reset/boot button on rp2040 Zero board - Pressing reset/boot button on rp2040 Zero board
- Pressing upper left corner on the keyboard when connecting the usb cable - Pressing upper left corner on the keyboard when connecting the usb cable
- Pressing Fn+Fn+Shift+Shift+Ctrl
## Hardware ## Hardware