Excelibur: 8 Foot Shift-Register Keyboard
Project involving Embedded Systems
This keyboard started out as a personal project that was later repurposed and redesigned to fit the final project requirements for an embedded systems course I was taking at the time.
The inspiration for this project was Google Japan's annual April Fool's keyboard.
In previous years, they have made keyboards in the form of cups and even party horns. For 2022, it was a single-row keyboard called the Gboard Bar.
What was interesting about this keyboard was that instead of using a button matrix like most traditional keyboards, the keyboard uses a bunch of parallel-in-serial-out shift registers to handle the key inputs
At the time that I came across this keyboard, it just so happened that I was learning about shift registers in my digital logics class, and I thought it would be perfect to apply a concept that I was learning about at the time.
Since Google Japan has created a GitHub repository for all of these keyboards, the KiCad PCB schematics and STL files for the enclosure were sourced from there. Although, I ultimately ended up remodeling the enclosures for the microcontrollers we were using
The PCBs were ordered from JBLPCB and by the time they had arrived, I had moved on from my Digitial Logics course to an Embedded Systems course. This course just so happened to have a final project requirement and I decided to kill two birds with one stone and use this keyboard as my final project.
However, this would mean that I had to fundamentally redesign the keyboard, as one of the main requirements of the project was that it needed to utilize the microcontroller that we had been using in class: The MSP432P401R LaunchPad from Texas Instruments that ran off an ARM Cortex-M4 processor.
It was also around the same time I found out that my school's IEEE chapter sponsored personal projects, so everything lined up nicely.
The problem was, to my knowledge, there was no third-party library support for this microcontroller, specifically for Bluetooth connection and keyboard inputs/outputs. To save time I ended up using the MSP432 to read and write to the shift registers and another microcontroller the ESP32 to run an Arduino library for Bluetooth keyboards.
Texas Instrument MSP432P401R Development Kit
M5StickC Development Kit that includes an ESP32 and Bluetooth module
Printed PCBs
In total, there were 8 different layouts: Keyboard segments from A-G and the controller segment. The different segments have a designated number of keys, for example, segment D is used for the space bar as such there is only one key switch and holes for the stabilizers.
All the key switches and components were soldered onto the PCBs by hand.
Modular Design
The segments of the keyboard are designed to connect with each other through 6-pin connectors. This allows the configuration of the keyboard to change lengths and key layouts.
All of these segments slide onto an aluminum bar for stability, this bar's length can also be modified through the use of connector pieces
Finished Product
So, as it turned out making an eight-foot keyboard makes it very difficult to take pictures of, which makes any sort of documentation a challenge
So it's technically a bit longer than 8 feet with all of the segments in the default 104 keys layout but again the length of the keyboard can be changed depending on the desired layout.
Testing and Verification
As a part of the final report, we had to conduct verification according to the test cases we designed. Some of the test cases include: testing the button inputs on the oscilloscope, ensuring the bits were being shifted correctly, and checking each button was properly mapped using keyboard testing software.
Using the Keyboard
The keyboard runs on an external power bank that runs 5V at 500mA. The Bluetooth connection is handled within the m5stick ESP32 development kit. The red LED will flash when the device is not connected via Bluetooth. While the LED is blinking it will appear as a discoverable device for both computers and mobile phones.
Once connected the red LED will stop flashing and constantly stay on. When this happens the keyboard is ready to be used.
As one can expect typing on an eight-foot-long keyboard is quite challenging. However, it can also be quite fun, especially with two people collaborating. Needless to say, this keyboard adds an entirely new definition to pair programming.
Since the keyboard mapping is customizable, the keys can also be bound to useful macros or shortcuts. Also because the modules detach, the user can choose how many keys they want on the keyboard you can choose to have just 1 or 4 keys instead of all 104 keys.
This means it can be used alongside a regular keyboard for tasks that require a lot of macros like video editing or Excel functions.
As such the keyboard is lovingly named Excelibur for its difficulty of use and its legendary status.