Custom Micro Keyboard
A custom small scale keyboard for use in a long range (LoRa) massaging device for natural disaster responders.
This project started as a sub-module of a senior design (capstone) project, with the goal to design a long range messaging platform for natural disaster reponders. Eventually it evolved into a standalone generic keyboard with multiple interfaces (USB, UART, SPI, and I2C).
First Prototype:
The goal of the first prototype of the keypad was to test a special purpose i2c expander IC (TCA8418) meant for keyboard matrices. To do this, a custom PCB was made. To construct the PCB, a blank copper clad board was painted over and laser etched to create a mask. Finally, the exposed copper was chemically etched. More on this process can be found here. Once the PCB was made, the IC was soldered using hot air and was tested using the code found here.
Another aspect of this project was designing a silicone membrane to provide water proofing and labels for the buttons. This was done by designing 3d printed molds for casting silicone as seen below. More on this process can be found here.
Second Prototype:
Once the design was validated, a custom PCB was fabricated for the full scale (micro) keyboard. This PCB was then used in the LoRa messenger project which can be found here. It met the needs for the application, but had a few shortcomings so It was revised in another revision. Mainly the board was designed with a connector that ran out of stock, so wires had to be soldered directly. Also, through-hole tactile switches were used making soldering too tedious.
Third Prototype:
The board was then redesigned with a new purpose in mind. For this prototype, the goal was to create a micro keyboard that could interface through many protocols (USB, UART, SPI). The main application was for single board computers like the Raspberry PI. This board can either act as a USB keyboard, or connect through the UART pin on the PI to access the terminal. In addition, these keyboards could easily be integrated into miscellaneous projects. One such project was a portable python shell.