Split Keyboard

C++ Firmware

Overview

An ortholinear split keyboard optimized for efficiency and ergonomics.

Hardware:
  • 2 layer manufacured PCB design.
  • USB B Mini Port for computer communication.
  • 3.5mm jack for communication between halves.
  • Rotary Encoder.
  • ATMEGA32U4 Microcontroller.
Sofware:
  • I2C protocol for communication between halves.
  • USB communication to computer.
  • Custom C++ firmware.
    • Custom and layered keymaps.
    • Custom chorded inputs.

After noticing wrist pain and unnecessary effort during long programming sessions, I sought out to build a custom keyboard that excelled in three key areas: ergonomics, aesthetics, functionality/efficiency.

Product Definition

Ergonomics

To combat persisten wrist pain and unnecessary energy expension, I made these design choices:

  1. I chose a split keyboard layout that allows flexibility and a natural arm angle
  2. I integrated adjustable stands into my laser-cut acrylic case, eliminating tiring wrist flexion.

Functionality

I integrated custom functionality with specialization to my common and repetative tasks through:

  • Layered Keymaps
    Alternative functions with Shift or Ctrl.
  • Custom Chorded Inputs
    Special functions when multiple keys are simultaneously pressed.
  • Push-Enabled Rotary Encoder
    For knob-adjusting of volume, brightness, etc. with press-switching.

Efficiency

To increase typing efficiency, navigation, and speed I implemented these key features:

  1. Migrating high-frequency keys such as Enter, Space, and </> to the thumb.
  2. Utilizing an ortholinear grid layout.
  3. Customizing keymaps and firmware functions.