I want to show you yet another replacement controller for Kinesis Contoured keyboards: KinBP ('Kinesis Blue/Black Pill').
There are a least 6 similar projects:
- 'Stapelberg' and KinT by Michael Stapelberg. They use quite expensive devboard, Teensy 2.0++ (KinT additionally supports Teensy 3.x) and the are compatible only with Advantage or Advantage-2 keyboards.
- Alvicstep. Not an actual controller, but Teensy 2.0 connected directly to DIP40 socket of the stock controller.
- nguyenvietyen. Similar to Alvicstep, Pro Micro connected to DIP40 socket and using multiplexed row access.
- Controller by Aaron Silman. This is a remake of 'Stapelberg' controller in KiCAD with several improvements: support for pre-Advantage keyboards with angled keywell connectors, correctly placed Teensy 2.0++, sub-100mm size. Great project. I wish I had discovered it earlier, then I wouldn't have to reinvent the wheel.
- Bluetooth controller by Wizarddata.
- Low price. This means: 1) Cheap development board with enough IO (so we don't have to mess with IO expanders). Teensy 2.0++ costs $24, Blue Pill Plus (STM32F103) or Black Pill (STM32F401) boards by WeAct Studio are $2.6 and $3.4 respectively. 2) Less than 100x100mm dimensions: some PCB manufacturers (e.g. JLCPCB) have special pricing for small boards. 3) Cheaper connectors. There is a Chinese substitute of Molex 39-53-2135 connectors, $0.6 instead of $1.2–1.4. Not a big difference, but 6 connectors needed for Advantage-2 and that saves another $3.6
- Ease of assembly by an inexperienced person. So we need to avoid SMD components or make an alternative TH footprints (this will be fixed in the next revision).
- Compatibility with all Kinesis Contoured keyboards, except for very early Model 100/110 which differs significantly. Silman's controller is compatible with Advantage-1 and Classic keyboards (but it doesn't have Molex FPC connectors for Advantage-2 thumb-cluster PCBs), KinT is compatible with Advantage-1/2, but I wasn't sure that it had the right spacing for keywell connectors. Another compatibility issue: some of the early Classics had a weird thumb-cluster PCBs with LEDs on them, not on the controller PCB. I've managed to fix that by designing a replacement thumb-cluster PCBs.
So here is the KinBP 1.1. I've checked it with Classic, Advantage and Advantage-2 keyboards. Everything works as intended thanks to engineers of Kinesis who didn't change the matrix for the last 25 years.
- Based on WeAct Blue Pill Plus board with STM32F103C8T6. I am going to replace it with WeAct MiniF4 STM32F401 devboard, as I have no confidence in long-term availability of STM32F103 based boards.
- Runs QMK from my fork. Next revision will be in the main QMK repository.
- There is a pin header for 8 additional switches (connected to unused matrix positions).
- 24LC128 I2C EEPROM. Primarily for a planned VIA configurator support. QMK supports EEPROM emulation for STM32F1xx and STM32F3xx, but not for the STM32F4xx, AFAIK.
TODO:
- Make another revision with STM32F401 WeAct board, rotated top-row connectors (for compatibility with Chinese connectors), expose unused pins, add a decoupling capacitor for the EEPROM chip. I expect to receive and check the PCB samples by the end of January 2021.
- Clone the keywell flexible PCBs.
- Some improvements to thumb-cluster PCBs: encoder support on 'Alt' key positions, better placement of the connector.
Michael Stapelberg: connectors pinout
Aaron Silman: in his article I found confirmation that Classic models have the same matrix as Advantage-1/2 before I got them at my disposal (my daily drivers are two handwired Kinesis keyboards, PCBs from which I threw away a long time ago).