Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cbiffle/keybrain
Drop-in replacement controller for WASD CODE v2B keyboard
https://github.com/cbiffle/keybrain
Last synced: 11 days ago
JSON representation
Drop-in replacement controller for WASD CODE v2B keyboard
- Host: GitHub
- URL: https://github.com/cbiffle/keybrain
- Owner: cbiffle
- Created: 2020-08-21T15:15:10.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-10T12:29:08.000Z (5 months ago)
- Last Synced: 2024-08-02T14:12:34.056Z (4 months ago)
- Language: Rust
- Size: 585 KB
- Stars: 75
- Watchers: 8
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.mkdn
Awesome Lists containing this project
README
# WASD CODE brain replacement
I have a CODE v2B keyboard from WASD (tenkeyless -- the kind without the
numpad). It's a nice keyboard, but has really limited programmability. WASD has
released a newer CODE keyboard (the v3) with some of the features I want, but...
this is a perfectly good keyboard still. Why throw it away?So I took it apart. It turns out that it contains a removable controller module,
nestled above the arrow keys. By replacing that controller module, I can fix the
things about the keyboard that bug me, and make it do _whatever I want._(This also means that WASD _could have_ released an upgrade module for their
existing keyboards, but decided to sell you a whole new keyboard instead,
because recycling is bad, I guess? Poor form, WASD.)Getting this to work has required a fair amount of reverse engineering work, so
I'm publishing the schematics and mechanicals so nobody has to go through it
again. I'm not prepared to provide any support for this design, particularly for
free -- good luck!# Status
**Hardware:** schematic and layout at the `fab-v1` tag have been built and work.
I've made a series of changes, hopefully for the better, since that tag; these
have not been tested.**Firmware:** mostly parity with the original.
Before you ask: This board _might_ be compatible with QMK? I don't know, I don't
use QMK.![Picture of the v1 board installed in my keyboard](v1.jpg)
# Configuration
Configuration uses the DIP switches on the back of the keyboard, but their
meanings have changed from the stock controller.- DIP1: swap Left Ctrl and Caps Lock.
- DIP2: swap Alt and Super (Mac mode).
- DIP3: replace Menu key with Fn key.
- DIP4: replace Right Alt key with Menu key (which is the same keycode as the
Compose Character key on Unix keyboards, so this effectively switches right
Alt to Compose -- though you will need to adjust the X layout options to make
this effective).When Fn is enabled (DIP3), a subset of the standard media keys are available
(rest are TODO):- Fn+PgUp: Volume Up
- Fn+PgDn: Volume DownIn addition, pressing Fn+Esc enters DFU mode (see below).
# Note on uploading firmware
I mostly program/debug the firmware using SWD. However, with the SWD connector
soldered on, the keyboard case won't close. To replace the firmware with the
case closed, you can use DFU mode.1. Ensure the Fn key is enabled (DIP3 set).
2. Plug in the keyboard and press Fn+Esc.
3. Run: `dfu-util -d 0483:df11 --alt 0 -s 0x08000000 -D path_to_file.bin -R`To get the binary file required by `dfu-util`, you can do:
```shell
$ cd fw
$ cargo build --release
$ arm-none-eabi-objcopy -O binary target/thumbv7em-none-eabihf/release/fourk fourk.bin
```