This is a custom-built 5x7 Dactyl Manuform keyboard, generated using the Cosmos Dactyl Generator. It features an integrated trackball, combining ergonomic split keyboard design with convenient pointer control.
This keyboard runs on ZMK Firmware, a modern, open-source keyboard firmware built on the Zephyr RTOS.
Firmware is compiled in CI with GitHub Actions.
The keyboard utilizes a custom ZMK branch by petejohanson/feat/pointers-move-scroll. This branch implements mouse pointer functionality, which is crucial for the trackball operation. While this is currently an unmerged branch, it's commonly referenced in the ZMK community for pointer implementations.
Note: This branch is expected to be merged into the main ZMK repository in the future.
To enable the trackball functionality, this build incorporates a custom Zephyr driver for the PMW3610 sensor. The driver is implemented by inorichi.
The trackball uses a PMW3610 sensor, which is mounted on a custom breakout board. The PCB design for this breakout board was sourced from the siderakb/pmw3610-pcb repository.
Fabrication Process:
- PCB design files were obtained from siderakb's repository.
- The PCB was ordered from an Electronic Design Automation (EDA) service.
- The PMW3610 module was sourced separately and soldered onto the fabricated PCB.
Special thanks to siderakb for providing the open-source PCB design files.
- PLA filament for 3D printed enclosure
- SuperMini nRF52840 Pro Micro Bluetooth LE microcontroller
- 3.7v 2600mAh batteries
- Kailh Hot-swap Sockets
- 28 AWG Enameled Copper Wire
- 1N4148 schottky switching diode
- Gateron Mini i switches
- Keycaps
- PMW3610 optical mouse sensor (Product Details)
- 1.34 inch trackball
- 304 stainless steel dowel pin
- MR63ZZ mini ball bearings 3x6x2.5mm
- Enclosure Preparation:
- Generate the keyboard design using the Cosmos Dactyl Generator.
- 3D print the enclosures using PLA filament.
- Switch Socket Installation:
- Insert Kailh hot-swap sockets into the designated positions in the 3D printed enclosure.
- Wiring:
- Solder columns using 28 AWG enameled copper wire.
- Solder rows using 1N4148 shottky siwtching diodes.
- Attach Dupont connectors to the end of each row and column.
- Microcontroller Connection:
- Connect the row and column wires to the nRF52840 microcontroller.
- Attach the PMW3610 breakout board for the trackball.
- Connect the necessary wiring from the PMW3610 to the nRF52840 microcontroller.
- Trackball Assembly:
- Install the 1.34 inch trackball.
- Use the 304 stainless steel dowel pin and MR63ZZ mini ball bearings for smooth trackball operation.
- Switch and Keycap Installation:
- Insert Gateron Mini i switches into the hot-swap sockets.
- Place the keycaps onto the switches.
- Power Supply:
- Connect the 3.7v 2600mAh batteries to power the keyboard.
- Attach the batteries to the enclosure using adhesive.
- Firmware and Configuration:
- Program the keymap and ZMK configuration onto the nRF52840 microcontroller.
- Implement the custom PMW3610 driver for trackball functionality.
Notes
- The build process requires careful attention to detail, especially during the wiring phase. Test one side before proceeding to the other.
- Enamel wire is recommended for wiring due to the ability to melt the enamel coating at solder points.