Skip to content

Binary Keyboard project files (as seen on Reddit front page!)

License

Notifications You must be signed in to change notification settings

dtwilliamson/BinaryKeyboard

 
 

Repository files navigation

BinaryKeyboard

A two-button backlit mechanical keyboard that types ASCII values, one bit at a time.

Photos

Photo of Binary Keyboard

Photo of Screen

Top Down Photo

GIFS

Mode switching and typing backspace

Typing the backspace character, followed by switching between modes.

Demonstrating left to right input

Demonstrating left to right input.

Showing off animations in updated alternate mode

New animations added to '1/0' mode. (Still working on a name for that).

Sample input using phone

Demonstrating compatibility with USB OTG.

Boot up sequence

Boot up sequence.

Normal use

Demonstrating right to left input.

Switching modes

Demonstrating switching between typing modes.

Fancy backlighting

Close-up of the blue led backlit keys.

Technical Info

Schematic

Image of Schematic

Components

Arduino Library Requirements

These libraries are used to drive the SSD1306 OLED display.

Eagle Schematic Details

Because I could not locate a part to represent the SSD1306 OLED Display, I created my own. This can be found in the CSJ Library file for Eagle. A word of warning, this was my first time using Eagle. The part works, but could be improved.

Uses c0z3n/cherrymx-eagle library as well.

Usage

Each byte can either be typed from most significant bit to least significant bit (left to right), or least significant bit to most significant bit (right to left). This is set before uploading to the board. After all 8 bits have been entered, it will type out the ASCII value equivalent of that binary value. The Pro Micro has native USB support, which means it acts just like any other keyboard.

If both keys are held down, the keyboard will switch to "1/0 mode" / "single button press mode" (I'm bad at names). In this mode, each key will represent a '1' or a '0' just like on a traditional keyboard, no binary involved.

Arduino Problems

Initially I was going to use a DigiStump board for this, but I found issues with not having enough memory to work with after importing libraries and not enough I/O. I'm using an Arduino Pro Micro knockoff. The reason that there is electrical tape covering it is because I found that shorting the contacts with a finger would cause it to stop working. I'm still not really sure why.

Contribution and Modifications

Please feel free to fork this project for your own purposes.

Acknowledgments

Special thanks goes to everyone in the UWB Makerspace that helped make this possible.

About

Binary Keyboard project files (as seen on Reddit front page!)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Other 52.4%
  • C 47.6%