Engineering Class Projects
This Fall I am excited to be a part of the E155: Microprocessor Systems course at Harvey Mudd College. In this class, we make cool projects to develop complicated digital electronics systems, including FPGAs, microcontrollers and chips of our choosing. By the end of the course in December, I will create my very own project and demonstrate it to my classmates, faculty, and staff. Please check out my work below! All labs have earned the highest score of Excellence.
By clicking the buttons below, check out how the full technical report and verification of each lab.
Lab 1: FPGA & MCU Setup & Testing
Lab 2: Time Multiplexing

Overview:
In this lab, time-divsion multiplexing (DTM) was implemented to drive a single dual 7-segment display with only nine FPGA I/O pins. The hexadecimal values displayed on each half of the dual 7-segment display were added and the sum was displayed as a 5-bit binary number on five external LEDs. Notably, PNP transistors were used to drive sufficient current to power the common anodes of the dual 7-segment display while respecting the FGPA’s current capacity.
Lab 3: Keypad Scanner

Overview:
In this lab, a design was implemened on an an FPGA to scan a 4x4 keypad matrix for key presses and display the selected presses as hexadecimal numbers 0 to F on a dual 7-segment display, with the most recent entry appearing on the right. When a key is pressed, it is recorded exactly once no matter how long or short the user holds the key down. Moreover, if additional keys are pressed while still holding down the first key, the additional keys are ignored.
Lab 4: Digital Audio

Overview:
In this lab, the internal peripheral timers of the STM32L432KC MCU were used to drive a small speaker to play music. To implement this function, the PWM timers on the MCU generated square waves to toggle a GPIO pin at a specific frequency and manage note duration. The MCU was programmed to play Für Elise by Beethoven and Blue (Da Be Dee) by Eiffel 65.
Lab 5: Interrupts

Overview:
In this lab, the STM32L432KC MCU was configured with interrupts to measure the rotational speed and direction of a 25GA-370 brushed DC motor containing a quadrature encoder. Pulses from the encoder were detected on the rising and falling edges of both encoder signals to achieve a high degree of accuracy in real-time.
Lab 6: IoT & SPI

Overview:
In this lab, an Internet of Things (IoT) device was designed and implemented using the STM32L432KC MCU interfaced with a DS1722 digital temperature sensor over serial peripheral interface (SPI) and an ESP8266 WiFi module via USART. The purpose of the IoT device was to generate a webpage that displayed real-time ambient temperature readings (ºC) of the lab room, while allowing users to toggle an LED and select temperature resolution.
