2025-09-17 23:03:07 +02:00
2025-09-17 23:03:07 +02:00
2025-09-17 23:00:23 +02:00
2025-09-17 22:36:47 +02:00
2023-06-05 11:27:37 +00:00
2025-09-17 22:36:47 +02:00
2025-03-13 22:48:58 +01:00
2023-06-05 11:21:09 +00:00
2025-09-18 14:34:06 +02:00

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

Layout

 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 enhanced 5-scan debounce (1.25ms) and anti-bounce protection to prevent double characters.
  • 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.
    • LED turns off during USB suspend for power savings.
  • Power management for USB suspend/resume:
    • Automatic power saving when USB host suspends device.
    • Reduced key scanning frequency (20x slower) during suspend.
    • Wake-on-input detection for any key press.
    • Immediate resume response when keys are pressed.

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
patch instruction


Description
No description provided
Readme GPL-2.0 95 MiB
Languages
Rust 79.2%
Python 17.9%
Just 2.9%