Projects
Project 1: MCU PCB Design
Designed and implemented a custom PCB featuring STM 32 ARM-Cortex Microcontroller for use in future electronics projects. The project involved schematic design, PCB layout, and custom component development. Click below to see the extensive project documentation.
Project 2: FPGA System Design Capstone
Developed VHDL code for a 4-bit adder and BCD display to validate the DE10-Lite FPGA functionality. Designed a PWM module and combined it with an ADC to create a voltmeter system on the FPGA. Additionally, I engineered the hardware architecture for a custom Nios II system, all accomplished using Quartus Prime.
Project 3: Single Cycle Processor
Designed and implemented the datapath for a 5-stage single-cycle processor in Verilog, integrating key components such as the program counter, register file, ALU, and data & instruction memories. Developed a control unit to manage instruction execution across all stages, ensuring seamless operation through comprehensive control signals that handle data and control hazards. Created detailed testbenches for each stage, using waveform analysis to verify functionality. The processor reads instructions, distributes bytes to the register file, performs computations in the ALU, and accesses memory when necessary, with the program counter incrementing or branching based on instruction flow. Attached below is the code for the single cycle processor.
Project 4: Smart Robot Car
Designed and built a multi-deck robot car with DC motor control, incorporating path-following capabilities, user-defined speed and distance inputs, specified angle turns, and Bluetooth functionality for remote control. All aspects of the robot were programmed from scratch using an Arduino UNO microcontroller, with hardware purchased from Arduino.
Project 5: Home Automation System
Built an IoT-based system for real-time environmental monitoring, measuring parameters such as temperature, humidity, and air quality. The data is collected and visualized through a web interface, allowing for remote monitoring.