I had the amazing opportunity to work with a team to design and tape out an integrated circuit of our choice in TSMC 65nm. Our design is a digital random number generator which leverages two different methods for entropy extraction from physical processes and then condition that entropy based on requests from off-chip CPU. My responsibilities were: schematic,layout, and simulation of a calibratable StrongARM latch-based entropy source, chip debug architecture and instruction format, and final integration.
As a teaching assistant for ECE 445, I was responsible for 6 teams of 2-3 senior ECE students, guiding them through the course from ideation to test and demonstration of their projects. I extended my TA position through the summer to update the existing PCB design introduction assignment for the class. The existing assignment was based on an ATMega microcontroller which was programmed to blink an LED with varying duty cycle. The new assignment that I developed is based on an STM32 MCU and the board that students will now design has an on-board H bridge IC and pin outs for several digital communication protocols and GPIOs.
The LDO project was the final project for the Analog IC Design course at UIUC. The project required my partner and I to make topological and device sizing design choices to meet given specifications for input/output voltage, load current, load regulation, and line regulation while minimizing quiescent current. This allowed us to apply our analog circuit knowledge gained from this class as well as use industry-relevant IC design tools. We did not do layout for this assignment.
This project was the main assignment for the Introduction to VLSI Design course at UIUC. There was a competition to create the smallest bitsliced RV32I datapath (no shifter) starting from the transistor level. I placed in the top 5 of over 100 students. This project taught me about the value of standard cells, simple best practices for routing, and gave me an understanding of the levels of abstraction that go into the design of a digital IC. The next project introduced the class to synthesis and automated PnR.
I am in Prof. Minh Do's Computational Imaging research group at the University of Illinois. I have Dockerized code, converted a ROS system to ROS 2, and have converted system level Python code to C++. This has all been done to improve the performance of the radar data collection system. The system includes an IWR1443BOOST radar board from TI and a DCA1000EVM also from TI to collect the ADC samples from the radar board. I am now developing various real time visualizations using various signal processing techniques.
After taking a cryptography course, I became aware of some vulnerabilities of remote access systems: replay, relay, and rolling jam attacks in particular. To solve this problem, I proposed designing a remote access system which leverages Schnorr Identification Protocol to eliminate those vulnerabilities. Within a group of two other students, I designed a low power fob, dictating the wireless communication subsystem which also went on a receiver module,designed by a groupmate. Another groupmate designed an AC-DC converter to power the receiver. I also wrote the software for this project. Our group won the "Instructor's Award", one of three awards given out among 45 teams.
In parallel with learning about the building blocks of FM wireless communication (Oscillator, Mixer, Modulator, Demodulator, Mixer, Filter, Amplifier, Matching Network) during lectrues, we (in parterships) designed most of these modules in the lab, culminating in the assembly of a full transmitter and receiver FM system. Our receiver, which included down-conversion and demodulation stages was fully functional, and connecting it to an antenna allowed us to hear FM radio broadcasts.
In the Advanced Digital Systems Labratory this semester, I completed the design, assembly, programming, and testing of a stepper motor controller for the EV Concept car. It will be used to control a motor which will turn the steering column. This board allows input from either the CAN bus which runs throughout the vehicle or over a USB COM port (useful for unit testing) which is then converted in software to a PWM signal which turns the motor a specified number of degrees. A complete report is available below.
This project is a water leak detector for a multitude of applications. I designed a PCB based sensor as well as an analog circuit which is connected the the ADC on a Raspberry Pi Pico W to detect water on the sensor. The Pico W measures battery percentage and sends an email notification when the battery is running low. It also sends multiple email alerts when a leak is detected. Any number of sensor boards can be wired in parallel which creates applications in various environments.
Personally I think this is one of my coolest projects. I used a Raspberry Pi Pico W to create a control hub for a model train that I have had since I was younger. The out of the box controls involved different switches for each switching track and a bulky controller with a dial for speed control. I wanted to create a wireless enabled embedded systems solution to make the whole thing more efficient. My solution handles speed, direction, and track switching control all from a web server hosted on the Pico W. All files (PCB and firmware) and documentation are available on my GitHub at the link below.
One of my personal interests is the stock market, but the cost of a digital ticker tape display can be $1000+. Instead, I chose to make my own using a Raspberry Pi Pico W and a WS1218B LED strip (total cost ~$25). The Raspberry Pi Pico W hosts a web server which holds an interactive list of stocks to display. Real time stock data including ticker symbol, price, and percent change are displayed in a scrolling fashion.
This project is designed to create bidirectional communication between a PC on board the vehicle and our sensors and driving systems to enable autonomous control. All of our sensors and systems use a CAN bus to communicate, my solution allows the CAN transmitted data to be fed into algorithms running on the PC. The PC then returns instructions to be sent to our motor controller, battery management system, steering system, and brakes.
This was my final project in my Digital Systems Lab and involved developing a UART RX, NMEA message parser, data storage format, and an VGA graphics driver in SystemVerilog. The functionality of this design included timestamped location logging (20 yard resolution) as well as the ability to display the logged locations on a monitor. I implemented this on an Intel FPGA using Quartus tools in SystemVerilog. There is a detailed report at the link below.
This project was part of my Digital Systems Lab and built upon earlier courses where we studied a CPU architecture called Little Computer 3 (LC-3). The ISA is similar to the simpler extensions of RISC-V like RV32I. To complete this project, I implemented the ISA on an Intel FPGA using Quartus tools in SystemVerilog.
This project was designed for the Illinois EV Concept team which builds a concept EV from scratch to race in the Shell Eco-Marathon, an international competition. This project involved designing, assembling, and testing a 4 layer PCB which includes a GPS module, LoRa communications module, CAN transceiver, and USB-C, all built around an STM32 MCU. This project enables the team to track the vehicle in real time for health monitoring, driver communication, position tracking, and even remote control. Thank you to Dmitry Ilcheko for guidance.
I included this project over others in the course due to the application of the slicing tree algorithm which we used. We used the algorithm to create a floorplan for VLSI design based on a text file input. This is one of many C and C++ projects done in my Computer Systems and Programming class which covered basic data structures, algorithms, and C code compilation
The goal of this project was to design a motion system to automate RF signal integrity testing. My role on the project was to design the entire system and build support for 2 dimensions of movement. I got familiar with Ansys HSFF, Marlin open source 3D printer firmware, used Python to interact over serial with an Arduino, and design and 3D print custom parts. Thank you to Dr. Thong Nguyen and Prof. Jose Schutt-Aine for this experience.
This was the final project for the Introduction to Computing course. This project involved creating a finite state machine from discrete logic ICs to handle vending machine transactions based on buttons representing different coins.
This project entailed working in a group of 4 to create a 100% hardware based obstacle avoiding rover which used ultrasonic sensors for object detection. Systems included automatic headlights, PWM-based speed control, and a DC-DC regulator (Zener).
Connect on LinkedIn