A 54-key split ergonomic keyboard with integrated trackball, powered by ZMK firmware.
This is a wireless split keyboard featuring:
- 54 keys in an ergonomic columnar stagger layout
- Integrated trackball (PAW3222 sensor) on the right half
- Wireless connectivity via Bluetooth Low Energy
- ZMK firmware with advanced features like layers, combos, and pointing device support
- nRF52840-based controllers (AKDK_BT1 compatible)
Generated by Auto-Keyboard-Design-Kit
| Part | Quantity | Notes |
|---|---|---|
| nRF52840 wireless controller (AKDK_BT1) | 2 | One for each half |
| Conthrough(2.5mm, 9pin) | 4 | For controller connection |
| LiPo Battery (3.7V) | 2 | Recommended: 301230 (110mAh) or similar |
| USB-C cable | 1 | For charging and initial setup |
| Choc V2 switch and socket | 54 | Low-profile mechanical switches |
| 1N4148 Diode | 54 | Through-hole or SMD |
| Choc V2 compatible keycaps | 54 | 1u keycaps |
| PAW3222 trackball sensor | 1 | Integrated on right half PCB |
- Split design with 27 keys per half
- Columnar stagger for ergonomic typing
- Trackball integration on right half
- USB-C charging ports on both halves
- Battery management circuitry
-
Clone this repository:
git clone <repository-url> cd split-ergo40pct-alpha
-
Initialize west workspace:
west init -l config west update
-
Build firmware:
# For left half west build -p -b akdk_bt1 -- -DSHIELD=split_ergo40pct_left -DCONFIG_ZMK_STUDIO=y # For right half (with trackball) west build -p -b akdk_bt1 -- -DSHIELD=split_ergo40pct_right -DCONFIG_ZMK_STUDIO=y
-
Flash firmware:
- Put controller in bootloader mode
- Copy
.uf2files frombuild/zephyr/to the mounted drive
This firmware uses the following ZMK modules:
- zmk-pointing-acceleration-alpha: Advanced pointer acceleration
- zmk-driver-paw3222-alpha: PAW3222 trackball sensor driver
| Layer | Name | Description |
|---|---|---|
| 0 | Base | QWERTY layout with modifiers |
| 1 | Numbers | Number row and navigation |
| 2 | Function | F-keys and system controls |
| 3 | Bluetooth | BT pairing and numpad |
| 4 | Mouse | Mouse buttons and trackball controls |
| 5 | Snipe | Precision pointing mode |
| 6 | Scroll | Scroll wheel emulation |
| 7 | Scroll_h | Horizontal scroll mode |
| 8 | Scroll_snipe | Precision scroll mode |
| 9 | Scroll_snipe_h | Precision horizontal scroll |
- Normal mode: Standard cursor movement (1600 CPI)
- Snipe mode: Precision movement (400 CPI, 1/3 divisor)
- Scroll mode: Vertical/horizontal scrolling
- Acceleration: Dynamic sensitivity based on movement speed
- Snipe layers: 5, 8, 9
- Scroll layers: 6, 7, 8, 9
- Horizontal scroll: 7, 9
Scroll: Keys 50+44 → Activate scroll mode (layer 6)Scroll_snip: Keys 50+46 → Activate precision scroll (layer 8)
Edit config/keymap.keymap to customize:
- Key bindings
- Layer assignments
- Combo definitions
- Trackball behavior
For detailed assembly instructions, see: split-ergo40pct-alpha manual
- Solder diodes to PCB (mind polarity)
- Install switches in sockets
- Mount controllers using conthrough pins
- Connect batteries to JST connectors
- Flash firmware to both halves
- Pair halves via Bluetooth
- Install keycaps and test all keys
- Calibrate trackball if needed
Trackball not working:
- Check SPI connections (SCK, MOSI, MISO, CS)
- Verify IRQ pin connection
- Ensure firmware includes PAW3222 driver
Split halves not connecting:
- Re-flash both halves
- Clear Bluetooth bonds: Hold reset combo
- Check battery levels
Keys not registering:
- Verify diode orientation
- Check switch socket connections
- Test with multimeter
config/keymap.keymap: Main keymap configurationboards/shields/split_ergo40pct/: Hardware definitionsboards/arm/akdk_bt1/: Controller board definitionbuild.yaml: Build configuration
When modifying this firmware:
- Test on actual hardware
- Update documentation for any changes
- Follow ZMK coding standards
- Consider backward compatibility
This project follows the ZMK license terms. Hardware designs may have separate licensing.
- Build Guide: Complete setup and build instructions
- Keymap Guide: Layer configuration and customization
- Trackball Guide: Trackball setup and tuning
- Hardware Assembly: See Build Guide
- Firmware Flashing: See Build Guide
- Keymap Customization: See Keymap Guide
- Trackball Tuning: See Trackball Guide
- ZMK Documentation: https://zmk.dev/docs
- Hardware Issues: Check PCB design files and Build Guide
- Firmware Issues: Review ZMK logs via USB serial and troubleshooting guides
Note: This image shows the default layer. Additional layers provide numbers, functions, and trackball controls.


