As keyboard enthusiasts, we wanted to cram as many features into a single keyboard as possible while downscaling it into a minimalist design with a Hackathon flair. We also did not want user input to feel repetitive, and decided to implement a predictive text algorithm similar to those on later generation 9 key keyboards on mobile phones.

But most importantly, we just wanted to be able to control our entire computer with just one hand and as little movement as possible (because reasons)

What it does

The keyboard has multiple layers of functionality, firstly a numpad layer which functions as a standard numpad, which works in tandem with the accompanying software to implement a T9 predictive function similar Nokia handphones in the 2000s (for example, to type "cab", someone would have to press "222 2 22" with pauses in between, while with predictive text it is shortened to "222"), a mouse layer for mouse control with keyboard keys, and a navigational cluster layer for various other keyboard functions.

How we built it (Hardware)

Keyboard was coded with customized QMK firmware with multiple layer implementation so it can function as a typing keyboard, numpad, mouse movement controller or navigation cluster, all at the flick of a switch. It also has partial volume control.

The housing for the key switches and wiring was handcut with nothing but a hacksaw, scapel, and a mini hacksaw over the duration of roughly 8 hours, with a Dremel to assist with drilling the switch holes. Much suffering and hand cramping was experienced during the aftermath.

How we built it (Software)

We coded a predictive text algorithm that suggests words of similar character length on the go through an interactive GUI as the user types through autohotkey. As including the entire standard english dictionary into the program makes it extremely space inefficient, we instead obtained a list of the 10000 most used english words derived from Google's trillion words corpus, which decreased the size of the word dictionary from 6mb to 74 kb.

Challenges we ran into

Autohotkey was a language that none of us were competent in and the documentations were confusing but we managed to persevere and cobble together our finished product by the end of the hackathon. Retrieving caret information for applications that handle their own UI was especially challenging. Our hardware, from the keyboard connection mesh to the acrylic casing was also entirely hand built and hand cut, which left one of our team members permanently disabled in one arm was extremely tiring (6+ man hours of sawing).

Accomplishments that we're proud of

  1. Understanding Autohotkey and being able to program it to work as we liked.
  2. Hand designing a keyboard and fabricating it on the spot was a fulfilling experience.
  3. Getting the coordinator to announce that team "DROP TABLE Students;" won was cathartic (In retrospect we should have used "Participants").

What we learned

We learnt that there's a reason why acrylic is normally laser cut and 3D printed. Also Autohotkey and keyboards go pretty well together when it comes to building functionality.

What's next for Omnikey

Integrated mouse optical sensor and multiple usb port so we can use it as a fully fledged mouse with a sensor. We also had a OLED screen that we had planned on integrating into this build, but we were unable to do so given the short timeframe of the hackathon along with the lack of software support and technical know how.

Built With

  • autohotkey
  • bloodsweat&tears
  • c
  • qmk
Share this project: