https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9d3d5a95-d2c6-44f6-8ff2-640f2ba085dd/Untitled.png

My junior year at Harvey Mudd, I took a class called Microprocessor Design and Application (E155). This class follows a digital electronics course where we design and implement a MIPS multi-cycle processor in System Verilog and implement it on an FPGA. In this course, we assemble a board with a PIC32 microcontroller and an Altera Vertex 2 FPGA. In this class, we learn various things from time-multiplexing displays, bluetooth serial communication, displaying to a CRT display through an FPGA, and controlling a mouse on screen. This class culminates with a paired final project. Max Gonzalez and I decided to develop a one-handed keyboard.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/99ff695a-051b-4df8-912f-e80c64e502ef/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ec10fc89-498b-4424-8dcb-60f4167081bd/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/94a1c56f-c32b-4c22-8b18-65518b980591/Untitled.png

The keyboard was assembled with unnecessarily large arcade buttons. However, they were cheap and easy to find. The microcontroller would poll the buttons to figure out what keys had been pressed or are being held down. It would then compute the letters for the keyboard helper and send that information to the FPGA through a UART. The FPGA then looks up the bits for each character in a lookup table and displays them in a custom build word processor on a CRT display. Check out the video for more information.

https://www.youtube.com/watch?v=23V3UcKeFqk

I made another prototype the following winter break. This time, I implemented it on an Arduino R3 and send commands to a computer through USB. With the difficulties involved in finding nice buttons, I decided to go with capacitive touch sensors as well. I included added fucntionality for using keyboard arrows, applying Shift, etc.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4c2dbbd9-af2a-47fb-a67f-820148aa579f/Untitled.png