Open hardware project for embedding small 0.42" OLED displays into keycaps for custom keyboards and macro pads.
This repository is still a work in progress. All hardware files being gathered, and instructions written
- Revision A (Tested): Validated Design. Uses a more complicated flexible PCBA and multi-part 3d printed assembly.
- Revision 1 (In Progress): Simplified Design, fewer parts to print and assemble
- Overview
- Project Revisions
- Hardware Details
- eCAD Library (Footprints)
- Assembly
- Firmware Support
- Repository Structure
- Licensing
- Contributing
This project documents a hardware design to add 0.42" displays to keycaps for custom keyboards and macropads. The idea originated after designing a macro pad to go with my spacemouse for keyboard shortcuts in CAD. I started adding multiple layouts for different working environments, and found it hard to remember what I had assigned to each key. Adding the screens allows each key to have a dynamic legend that updates in real time to your workspace.
The hardware was designed alongside the Continuum Firmware project
- compatibility with standard keycap size and spacing
- Mechanical durability under repeated key presses.
I am not the only person to have this idea. Around the time I was working on my SpaceMouse Macropad I found the Keybon Project, which uses 0.66" OLED displays as buttons. I loved the idea, but wanted to use standard keyboard keys. This set me down the road to designing the first revision of this project.
Around the same time thpoll83 started working on a very similar idea with the Polykybd Project. I did not find this project until well after my first revision was designed and in testing. Their hardware design is much more elegant, and has greatly influenced my overhaul of my own hardware.
Summary: Initial working implementation
- Requires a custom flex PCBA with 0402 components to be soldered to each OLED display
- Each keycap is made from 2 custom 3d printed parts and a custom cut piece of acrylic. Assembly is tedious and time consuming.
- Keycap feel isn't great, though is largely fine for macropads.
- PCB layout doesn't allow for the use of hotswap sockets.
- Designed around the Kailh Choc family of switches only
Summary: In-Process redesign to simplify implementation.
- All parts designed in CAD/eCAD.
- Prototype/testing pending.
- Keycap assembly now uses clear relegendable keycap covers similar to the Polykybd. This reduces the custom parts to a single 3d printed part per key
- The passive components from the flex PCBA are now moved to the actual keyboard rigid PCB, this simplifies assembling the screens.
- Stretch goal, the new flex extension should be compatible with the new 0.42" full color TFT (with changes to the signals on the keyboard PCB)
- New PCB footprint allows the use of hotswap sockets without losing the ability to use an LED at each key
- Footprints are in development for all major key switch families to expand beyond the Kailh Choc
- Display: 0.42" SSD1306 OLED Display
- Interface: SPI
- Keycap compatibility: Fully Custom only for Rev A. Relegendable Keycaps with custom inner parts for Rev 1
- Switch compatibility: Kailh Choc only for Rev A. Support for all major switch families in development for Rev 1.
Fusion electronics .lbr libraries are included for both Rev A and Rev 1 versions of the design. 2D Drawings of each footprint are included as well for reference in creating footprints in other design software.
Assembly steps to be added
Assembly steps to be added
- Continuum Keyboard Firmware - Fully supported
- Polykybd's port of QMK - Likely supported, but untested
The following custom keyboards were designed to use the OLED keycaps
- Continuum 108 Key Full Keyboard (link to be provided)
- Continuum SpaceMouse Addon MacroPad (link to be provided)
With larger numbers of displays, it becomes necessary to use external ICs to manage the chip select lines of each display, as most microcontrollers run out of pins. Continuum was designed around the 74HC595BQ,115 shift register for commanding chip select pins.
CERN Open Hardware Licence Version 2 - Weakly Reciprocal