‘The Keyboard’ is a collaboration project with C Vollenhoven to develop our ideal custom keyboard, implementing features & design choices we wanted but were unable to find on commercial offerings. Armed with a clear set of user requirements & a design spec, we created our ideal keyboards, with two of our colleagues also requesting us manufacture them keyboards too. The design is split into two primary sections, the Main-board containing the microcontroller & other features (primarily handled by myself), and the keyplate/numpad (primarily handled by C.V). A full gallery of images can be found at the bottom of the page
The Main-Board (M-B)
The mainboard schematic & PCB design were created by myself, with C.V working alongside for the audio IC part of the schematic. The mainboard is a 6-layer, 1.6mm thick, ENIG plated, impedance controlled PCB.
Featuring the STM32F303VCT6 with 16MB of flash at the heart of the mainboard, we chose this IC due to the high number of I/O pins we required, while still leaving significant room for expansion for future revisions, as well as a larger than typical on-chip program flash. This larger program flash allowed us to use certain features of QMK such as autocorrect while having the ability to load large autocorrect library definitions (3-4k+ lines).

One key specific feature I required in the custom keyboard was an inbuilt USB hub for peripherals, using a TUSB4041 USB2.0 hub IC from Texas Instruments. 2x type-A downstream ports are exposed for user use, with the other two connected internally for the STM32 & audio IC. Each port can provide up to 900mA per port in line with USB spec, with a DC barrel jack for if the keyboard is connected via USB-A instead of Type-C, all controlled by a power switch IC. The audio IC, a requirement from C.V, features a 3.5mm TRRS jack with tip switch interface enable & a physical microphone mute button all controlled by the TI PCM2912 USB audio interface. The tip switch enable allows for the host PC to auto switch to the PCM2912 interface automatically when headphones are connected, and disconnect when they’re removed for ease of use.
The board also features several auxiliary features, such as an OLED connector, SWD header for ST-Link debugging, a buzzer, selectable power out for addressable RGB lighting downstream, an FPC connection for downstream connection and several supplementary indication LEDs. In the future, a second revision of this board will be created implementing USB-C downstream ports, and a USB-3.1/3.2 (5Gbp/s / 10Gbp/s) hub
Graceful Degradation
This board was designed with the concept of graceful degradation in mind, ensuring the device retains as much functionally as possible for it’s original application despite any failures, and then allow for re-use in other applications. For example, to ensure the keyboard still functions if the primary USB hub IC fails, by bridging 4 contacts with solder/0Ω resistors, it allows for complete bypassing of the hub IC, allowing the keyboard to work in a basic state. To reduce the longer term electronic waste that this may create when future revisions are designed & manufactured, this board can then be reused as a general powerful microcontroller development board, with the only required piece of additional equipment being an FPC connecter breakout.
Overall this board required key focus on areas such as impedance control, layer stackup, EMI & analogue signal management to design, and has resulted in fully functioning boards. Each board was hand-made, with solder paste stencil, hand placing of over 160 SMD components (from 0402 to LQFP-100) and reflowed on a custom built hotplate.

Keyplate/Numpad
The keyplate & numpad schematics & PCBs were created by C.V, with myself creating the custom pogo-pin connectors for the numberpad. As Engineers, the keyboard layout was an area where both of us had clear requirements for what we required for increased productivity, with C.V needing several customisable macro keys, myself requiring a fully detatchable number pad for both left and right side use (to eliminate need to remove hand from mouse when doing CAD by having the numberpad on the left hand side, next to the SpaceMouse) and combined requirement for fully media keys & dual rotary encoders w/ switch for advanced control. Another key requirement from myself was the addition of extra keys on the number pad, for (, ), mm, cm, in keys to again improve efficiency in CAD software, which can also be used as general Macro keys if needed. To facilitate the requirement for a detatchable numpad, I designed a custom pogo-pin connector PCB to allow the numpad w/ strong magnets to snap to either side. If required, this method also allows for two numpads to be connected at the same time, with only 1 wire needing to be disconnected for the individually addressable LEDs.

Gallery

















