README.md 2.02 KB
Newer Older
Josh Robson Chase's avatar
Josh Robson Chase committed
1 2 3 4
## Polymer Keyboard

Work-in-progress modular mechanical keyboard.

Josh Robson Chase's avatar
Josh Robson Chase committed
5 6 7 8
Pic of one half:

![Not the ErgoDox. That's an ErgoDox](polymer.jpg)

Josh Robson Chase's avatar
Josh Robson Chase committed
9 10 11
### Links

* Main firmware repository: [firmware/polymer](https://gitlab.com/polymer-kb/firmware/polymer)
Josh Robson Chase's avatar
Josh Robson Chase committed
12 13 14 15
* Embedded Futures executor: [firmware/embedded-executor](https://gitlab.com/polymer-kb/firmware/embedded-executor)
  * [Blog post coming soon!](https://josh.robsonchase.com/embedded-executor)
* stm32f103xx async abstractions: [firmware/stm32f103xx-futures](https://gitlab.com/polymer-kb/firmware/stm32f103xx-futures)
  * [Blog post coming eventually!](https://josh.robsonchase.com/async-serial)
Josh Robson Chase's avatar
Josh Robson Chase committed
16 17 18
* Case: [hardware/case](https://gitlab.com/polymer-kb/hardware/case)
  * Purchase case: [Armattan Store](https://armattanproductions.com/pages/shop_product_grid/4150)
* PCB: [hardware/pcb](https://gitlab.com/polymer-kb/hardware/pcb)
Josh Robson Chase's avatar
Josh Robson Chase committed
19 20 21
* Misc. Blog Posts
  * [Bootstrapping My Embedded Rust Development Environment](https://josh.robsonchase.com/embedded-bootstrapping/)
  * [Embedded Frustrations](https://josh.robsonchase.com/embedded-frustrations/)
Josh Robson Chase's avatar
Josh Robson Chase committed
22 23 24 25

### Key (planned) Features

* Rust firmware
Josh Robson Chase's avatar
Josh Robson Chase committed
26
  * written in an async-first style using the latest and greatest `Future`s API
Josh Robson Chase's avatar
Josh Robson Chase committed
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
* ARM microcontroller
* Daisy-chainable
  * Mix-n-match modules
* Programmable layers

### MVP

This will be the first iteration of the keyboard implementing the bare
minimum features.

* Split ortholinear layout (5x7 x2)
  * ARM controller + 2 TRRS ports per half
* RobotDyn STM32Mini controllers
  ([link](https://robotdyn.com/stm32f103-stm32-arm-mini-system-dev-board-stm-firmware.html))

Mix-n-match modules will probably come later.

Josh Robson Chase's avatar
Josh Robson Chase committed
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Full BOM to come once I have it fully built and working.

### Current Status

- [x] Case design
- [x] Initial PCB design
- [x] Async proof-of-concept
  - [x] Multitasking embedded executor
  - [x] stm32f103xx async IO crate
- [ ] I2C implementation
- [ ] Finalize PCB design
  - [ ] Order PCBs
  - [ ] Assemble/test
- [ ] Matrix scanning & key translation
- [ ] USB implementation
  - [ ] HID Boot device
  - [ ] NKRO