cmdr-keyboard/README.md

132 lines
6.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CMDR keyboard 42 (swedish layout)
*This HW(PCB) was original made for use with the TeensyLC module and is reused by patching it to fit the rp2040-zero module*
![image](keyboard_42_green.jpg)
## Layout
```text
Layer 0
--------------------------------------- ---------------------------------------
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Å |
| LCtrl | A | S | D | F | G | | H | J | K | L | Ö | Ä |
| Shift | Z | X | C | V | B | | N | M | ,; | .: | -_ | Shift |
--------------------| Alt | Fn | Spc | |Enter| Fn |AG+Fn|--------------------
------------------- -------------------
Layer 1 (Fn)
--------------------------------------- ---------------------------------------
| Esc | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | BSpc |
| LCtrl | 1! | 2"@ | 3#£ | 4¤$ | 5% | | 6& | 7/{ | 8([ | 9)] | 0=} | Enter |
| Shift | 6& | 7/{ | 8([ | 9)] | 0=} | | <>| | ´`± | '*´ | ¨^~ | +?\ | Shift |
--------------------| Alt | Fn | Spc | | BSpc| Fn |AG+Fn|--------------------
------------------- -------------------
Layer 2 (Fn + Fn)
--------------------------------------- ---------------------------------------
| Esc | F11 | F12 | F13 | F14 |PrSrc| | § | SLk | Gui | OSLk| CpLk| BSpc |
| LCtrl | F15 | F16 | F17 | F18 | F19 | | Left| Down| Up |Right| Del | Enter |
| Shift | F20 | F21 | F22 | F23 | F24 | | Home| PgD | PgU | End | Ins | Shift |
--------------------| Alt | Fn | Spc | | BSpc| Fn |AG+Fn|--------------------
------------------- -------------------
```
## Features
- 42 keys "Split" keyboard layout. 36 finger buttons and 6 thumb buttons.
- Extreme low profile (only one pcb).
- Cost efficient solution with one pcb and one 3D printed cover.
- Function layers provide three active maps (primary + two Fn layers) with sticky-lock support.
- High-speed key scanning: 250µs cadence with 2-scan press / 3-scan release debounce for sub-millisecond latency and immediate USB reporting.
- Status indication driven by the joystick-style heartbeat model:
- Heartbeat green while waiting for USB enumeration.
- Solid green during normal operation; automatic heartbeat idle animation after 5s inactivity.
- Blue solid / flashing when sticky lock is armed / latched.
- Red solid on firmware error, red flashing for Caps Lock.
## Build environment rp2040 Zero
Rust embedded, rp2040 HAL
- Cargo (cargo.toml)
- rustup target add thumbv6m-none-eabi
- cargo install elf2uf2-rs --locked
- Flashing via rp2040 USB bootloader
- Pressing reset/boot button on rp2040 Zero board
- Pressing upper left corner on the keyboard when connecting the usb cable
## Hardware
[Schematics](eCAD/cmdr_mainboard_42_v1.pdf)
[patch instruction](/eCAD/rp2040_42_patch_instruction.md)
- 1x rp2040 Zero
- 36x Cherry MX compatible switches
- 6x Kailh Choc low profile switches
- 42x 1N4148 diodes
- 1x PCB [Gerber files](eCAD/cmdr_mainboard_42_gerber_v1.zip) (please see [patch instructions](/eCAD/rp2040_42_patch_instruction.md))
- 1x MCU cover [STL file](mCAD/cmdr_keyboard_42_cover.stl)
- 1x 6x3 Cherry MX mounting jig (optional) [STL file](mCAD/cmdr_mounting_jig-MountingJig.stl)
***
# CMDR keyboard 51 (only in concept phase)
![image](mCAD/cmdr-keyboard-51-v1.png)
## Layout
```text
Layer 0
-------------------------------------- ------ ------ --------------------------------------
| Tab | Q | W | E | R | T || SLk | |PrSrc|| Y | U | I | O | P | Å |
| LCtrl | A | S | D | F | G || M2 | | M5 || H | J | K | L | Ö | Ä |
| Shift | Z | X | C | V | B || M3 |-----| M6 || N | M | ,; | .: | -_ | Shift |
--------------------| Alt | Fn | Spc || BSpc| Gui |Enter|| Spc | Fn |AG+Fn|--------------------
------------------ ----------------- ------------------
Layer 1 (Fn)
-------------------------------------- ------ ------ --------------------------------------
| Esc | F1 | F2 | F3 | F4 | F5 || M1 | | M4 || F6 | F7 | F8 | F9 | F10 | BSpc |
| LCtrl | 1! | 2"@ | 3#£ | 4¤$ | 5% || M2 | | M5 || 6& | 7/{ | 8([ | 9)] | 0=} | Enter |
| Shift | 6& | 7/{ | 8([ | 9)] | 0=} || M3 |-----| M6 || <>| | ´`± | '*´ | ¨^~ | +?\ | Shift |
--------------------| Alt | Fn | Spc || BSpc| Gui |Enter|| Spc | Fn |AG+Fn|--------------------
------------------ ----------------- ------------------
Layer 2 (Fn + Fn)
-------------------------------------- ------ ------ --------------------------------------
| Esc | F11 | F12 | F13 | F14 | || M1 | | M4 || § | SLk | | | CpLk| BSpc |
| LCtrl | F15 | F16 | F17 | F18 | F19 || M2 | | M5 || Left| Down| Up |Right| Del | Enter |
| Shift | F20 | F21 | F22 | F23 | F24 || M3 |-----| M6 || Home| PgD | PgU | End | Ins | Shift |
--------------------| Alt | Fn | Spc || BSpc| Gui |Enter|| Spc | Fn |AG+Fn|--------------------
------------------ ----------------- ------------------
```
## Features
- 51 keys "Split" keyboard layout. 36 finger buttons, 9 thumb buttons and 6 function buttons.
- Extreme low profile (only one pcb).
- Cost efficient solution with one pcb and one 3D printed cover.
- Function layers with the same immediate-report, low-latency scanning pipeline as the 42-key variant (primary + two Fn layers with sticky lock).
- Status LED behaviour mirrors the joystick/42-key firmware: heartbeat during boot, idle animation after 5s inactivity, blue indicators for sticky lock, and red for caps/error conditions.
## Build environment rp2040 Zero
Rust embedded, rp2040 HAL
- Cargo (cargo.toml)
- rustup target add thumbv6m-none-eabi
- cargo install elf2uf2-rs --locked
- Flashing via rp2040 USB bootloader
- Pressing reset/boot button on rp2040 Zero board
- Pressing upper left corner on the keyboard when connecting the usb cable
## Hardware
[Schematics](eCAD/cmdr_mainboard_52_v1.pdf)
- 1x rp2040 Zero
- 45x Cherry MX compatible switches
- 6x Kailh Choc low profile switches
- 51x 1N4148 diodes
- 1x PCB [Gerber files](eCAD/cmdr_mainboard_51_gerber_v1.zip)
- 1x MCU cover (TBD)
- 1x 6x3 Cherry MX mounting jig (optional) [STL file](mCAD/cmdr_mounting_jig-MountingJig.stl)