Update readme
This commit is contained in:
parent
6530b4adf8
commit
dd1f9cd918
37
README.md
37
README.md
@ -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 5 s 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
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user