The kinT-QT keyboard controller is a replacement for your Kinesis Advantage or Advantage 2 ergonomic keyboards.
It is based on the kin-T controller designed by Michael Stapelberg, which utilizes the line of Teensy microcontrollers from PJRC.
kinT-QT is designed to be microcontroller-agnostic ... the matrix and indicator LEDs to a pair of MCP23017 port expanders that are accessible via I2C, so all of the functionality of the keyboard can be controlled by most microcontrollers with 2 digital pins.
The PCB has footprints for Adafruit Feather boards, as well as for Adafruit KB2040 and other Pro Micro compatibles. Connections from the microcontroller footprint to the I2C bus and USB cable are configurable by solder jumpers, and extra prototyping space is provided to allow for maximum flexibility.
3D render (front, LEDs) | 3D render (back, components) | schematic |
The kint-QT keyboard controller was made for the Kinesis Advantage or Advantage 2 series.
The kinT-QT keyboard controller is not compatible with the newer Kinesis Advantage 360 series, introduced in 2022, because the 360 is a split keyboard that uses an entirely different form factor for its electronics (Kinesis 360 teardown photos).
The kinT-QT keyboard controller is also not compatible with very old Advantage keyboards, where the left and right keywell circuit boards plug directly into the controller. See issue #42 for details and pictures.
The above firmware has been tested with the following microcontroller development boards:
- Adafruit Feather M0 Express
- Adafruit Feather M4 Express
- Adafruit Feather nRF52840 Express
- Adafruit Feather RP2040
- Adafruit KB2040
The kint-QT controller is designed to
-
Follow “Buying the board and components (Bill of materials)”.
-
Wait for the components to arrive. When ordering from big shops like Digi-Key or Mouser, this typically takes 2 days to many places in the world.
-
Wait for the boards to arrive. This takes 6 days in the best case when ordering from OSH Park with their Super Swift Service option. In general, the longer you are willing to wait, the cheaper it is going to get.
-
Follow the soldering guide. This will take about an hour.
There are six Phillips #2 screws in the underside of the keyboard. Remove these and open up the keyboard like a clam shell from the bottom. Detach the USB cable from the Kinesis controller and remove the center screw. Carefully unlatch each of the white connectors and slide out the FFC ribbons. Remove the stock controller while taking care not to snag or damage the ribbon cables. Slide the new board into place, re-attach the center screw, and then re-seat all of the ribbon cables and latch the connectors.
KB600 with stock controller still installed and USB cable connected | KB600 with stock controller removed and USB cable disconnected | KB600 with kinT-QT installed and USB cable connected |
If you are going to continue to use the stock USB cable, plug it into the connector at the top of the kinT-QT board. Carefully close the clam shell back up, keeping an eye on the USB cable to make sure it doesn't get caught on one of the ribbon cables. Replace the six screws (do not force them or tighten too hard because they threaded into the plastic case).
Another way is to remove the existing cable from the Kinesis keyboard, and use a regular USB cable instead (going through the existing hole in the case).
For your convenience, here is an example BOM list to build the controller using Adafruit KB2040 for the microcontroller directly soldered using the castellated pads (links go to Digi-Key). Your BOM might vary depending on the configuration of your board, such as if you choose a different microcontroller board or would like to use headers/sockets instead of soldering it directly to the board.
Part Number | Count | Cost | Description | Note |
---|---|---|---|---|
Adafruit KB2040 | 1 | $8.95 | your choice! | |
JST B9B-PH-K-S(LF)(SN) | 1 | $0.48 | Connector 9 position 0.079" (2.00mm) | Connector for USB cable |
Molex 39-53-2135 | 6 | $1.41 | 13 position FPC connector | 4 for KB500, 6 for KB600 |
Microchip MCP23017-E/SP | 2 | $1.79 | IC XPNDR 1.7MHZ I2C 28SDIP | |
Adam Tech ICS-328-T | 2 | $0.27 | IC SOCKET, DIP, 28P 2.54MM PITCH | |
Kingbright APTD3216LQBC/D | 4 | $0.50 | 1206 SMD LED | choose your color! |
Stackpole RMCF1206JT4K70 | 6 | $0.10 | 1206 4.7K resistor | 2 for I2C pullups, 4 for LEDs |
$24.61 |
It is fine if you prefer to use different options for the LEDs and the 4 associated resistors. Please note that 2 of the resistors listed above are pull-ups for the I2C bus and not for LEDs.
All the soldering connections on the kinT-QT keyboard controller are easy to make, so the whole assembly can be done at home, with a cheap soldering iron and basic electronic hobby equipment.
For example, I used the Pinecil - Smart Mini Portable Soldering Iron, which can be found for around $30-40 USD combined with a power supply.
If you’re new to soldering, check out this excellent soldering reference card from adafruit.
-
Populate the FPC connectors J2, J3, J4, J7 (all keyboards) and J1, J8 for the newer Advantage 2 (KB600). Turn the board around and solder all their pins.
-
Solder resistors R1, R2, R3, R4 and the four LEDs onto the board.
-
LEDs are directional parts! Their marker marks the cathode, which is labeled as C on the kinT. For details about the marker, refer to the LED datasheet, e.g. the Kingbright APT3216QBC/D data sheet if you are using the LED from the Bill of Materials (BOM).
-
If you’re new to SMD (Surface Mount Devices) soldering, check out How to Hand Solder SMD.
-
-
Solder R5 and R6 to function as pull-up resistors for the I2C bus.
-
Turn the board around and place (but don’t solder) 3 rows of pin headers (top, bottom, vertical) in the Teensy holes.
-
The vertical pin header is required for powering the LEDs.
-
If you want your Teensy to be removable, you can use socket headers here instead. See the instructions below.
-
-
Place your Teensy on top of the pin header and solder all its pins.
-
Turn the board around and solder all the pin header pins.
-
For the older Advantage (KB500) keyboard, populate pin headers J5, J6 and solder their pins.
Primary firmware: https://github.com/bgould/keyboard-firmware/tree/main/devices/kinx