Inspiration

Paul Elder, the youngest member in our team, had experiences with programmable keyboards that are useful and cool. However, he soon realized that almost all of these keyboards are software-bounded (depends on OS), and therefore are not flexible enough to fit all needs.

Overview

Makes any normal USB keyboard a programmable one, just by attaching Hackkeys to it.

Accomplishments that we're proud of

We are proud of the fact that we have created a viable product from scratch, which achieves our initial goal of creating a programmable keyboard that only depends on hardware.

On the more backend side of things, we noticed that the Arduino UNO inherently doesn't support USB output. In particular, we found out that it does not support keyboard output outside of the arduino IDE. Hence, we had to research on hacks to upgrade our firmware. This was a big hurdle we had to clear early on in the hacking process. We also had to work with the limited database that the Arduino UNO holds. To overcome the small memory space, we had to engineer efficient data structures to store our command+macro combo.

The fact that we achieved our goal through pioneering new methods of using the Arduino UNO make us proud.

What we learned

  • All about the Arduino
  • How to implement efficient data structures from scratch
  • How USB Keyboards transmit data
  • Clean wiring on breadboards, and soldering

The event horizon between software and hardware.

What's next for Hackkeys

We do not have any solid plans to the continuation of this project. However, there are still unclosed issues up on our github repo, and it would be great if we could continue working on this bit by bit.

Built With

Share this project:

Updates