Papers & Project

Papers

The C29 CPU – Unrivaled Real-Time Performance with Optimized Architecture on C2000 MCUs

In this project, I conducted a comprehensive study of the C29x core architecture used in TI’s C2000™ real-time microcontrollers, which are an upgrade from widely adopted C28x family in digital control systems such as motor drives, automotive, and power conversion applications. Key contributions included:

  • Evaluated the key features that the new C29x core bring and rephrase to what customers care and understand
  • Compared performance metrics between C28x/C29x cores and competition, with a focus on interrupt response time, instruction cycles, and deterministic task execution
  • Optimized real-world use cases where control performance and architecture optimization are mission-critical
  • Collaborated with engineers to deliver its pipleline and safety architecture and explain why it improves efficiency


  • This project deepened my understanding of embedded CPU design, real-time processing requirements, and microcontroller-level optimizations that impact system-level performance and reliability.

    EXPLORE NOW

    Graph Traversal Breadth First Search Optimization

    Tool: C, Cuda

    Breadth First Search is a significant implementation of graph processing. Besides from the ordinary solution for the application, such as shortest path and minimum spanning tree for unweighted graph, peer to peer networks, crawlers in search engines, and social networking websites, I discovered deeply in the optimization of breadth first search through parallelization, blocking, and other algorithms, such as hybrid algorithm and Dijkstra’s algorithm. I also dug into the performance on CPU and GPU, comparing the efficiency of the different algorithms.

    EXPLORE NOW

    Man in the Middle Attack: Principles & Tricks

    I collaborated on a technical research project focused on Man-in-the-Middle (MitM) attacks — one of the most persistent and difficult-to-detect threats in modern network security. Our project explored:

  • The principles and step-by-step logic behind common MitM attacks
  • Real-world implementation of DoS, ARP spoofing, DNS spoofing, and SSL stripping using Kali Linux, Ettercap, and Wireshark
  • Simulated live attacks to capture login credentials on unsecured networks
  • Evaluated weaknesses in HTTP vs HTTPS and studied protocol-level exploitation
  • Proposed practical defense strategies including VPN, Dynamic ARP Inspection, HSTS preload, and static ARP tables


  • This hands-on work gave me real-world experience in network vulnerability exploitation, as well as insight into ethical hacking tools and the importance of securing client-server communications. I also learned how to explain complex cyber threats in a practical, comprehensible way.

    Electro-thermal technology on pumped heat energy storage system

    I conducted an in-depth research project on pumped heat energy storage (PHES) — an emerging, scalable solution for large-scale renewable energy storage. This system, known as the "Brayton battery", stores excess energy using high-pressure working fluids and molten solar salts, providing a low-cost and efficient alternative to lithium-ion batteries. My research focused on:

  • Analyzed the thermodynamic cycle and round-trip efficiency of PHES systems
  • Investigated heat transfer fluids (e.g., n-hexane, thermal oil) and their performance limits
  • Evaluated molten salt mixtures (NaNO₃/KNO₃ and chloride-based salts) as thermal storage media
  • Explored corrosion challenges and potential solutions using graphite and nanoparticle coatings
  • Assessed techno-economic trade-offs including storage density, cost, and operational temperature range


  • This project deepened my understanding of energy storage challenges and materials engineering, while reinforcing my interest in sustainable technologies and energy innovation.

    Project

    Beyond Air Tapping

    Tool: Flutter, Python, Unity, Swift, Augmented Reality (AR)

  • Led the team to achieve small milestones and report to the client, rtangent, weekly
  • Projected the 3D models onto the QR code on the hardware baton, where users can see through iOS app
  • Created an iOS app where allows authenticated users to upload new contents that they wanted to project
  • Integrated flutter, unity, and python codes among hardware and softwares, enabling data transmission
  • Presented on ECE day, and the demo was praised by many visitors
  • Designed an authentication of using QR codes to determine admin or users, while only admin can upload contents
  • EXPLORE NOW

    Calories Tracker

    Tool: React Native, Firebase

  • Utilized API to gain data from the Food Data Central
  • Be able to scan barcode for calories and save to the database under users through Firebase
  • Authenticated users through username and password or through Google account
  • EXPLORE NOW

    Smoothie Dispenser

    Tool: C, Node.js, JavaScript

    Smoothie Dispenser is a remote food drop system that consumers can use to drop smoothie onto smoothie container by pressing a remote button on their phone; afterwards, customers can obtain the smoothie from the smoothie container. The main process includes 5 steps: 1) place the smoothie container at smoothie drop zone. 2) observe the LIDAR distance and box location through WebCam. 3) observe the accelerometer data when stabilizes. 4) we click the drop button, and then the temperature decreases. 5) the customer can take the smoothie away.

    We use 2 actuators, 3 sensors and a RPI WebCam to implement this dispensing system. We used a servo for dropping food, a LIDAR sensor for determining the distance between the drop zone and the food container, an alphanumeric display for displaying the LIDAR value, a thermistor for determining the smoothie temperature and an accelerometer for determine if the food container is being moved or staying still.

    EXPLORE NOW

    Cruise Control

    Tool: C, Node.js, JavaScript

    We connected the crawler, range sensors, esc & steering servos, optical encoder to esp32, and used udp & socket.io to implement cruise control on the crawler, making it an autonomous vehicle. We utilized three sensors(Lidar v4, IR RangeFinder, and Ultrasonic Sensor) around the crawler for detecting the distance between the obstacles and the car so that it does not crash. We also used an optical encoder to measure the crawler speed. Our goal is to drive the crawler along a designated straight line, maintaining a constant speed of 0.1 - 0.4 m/s. The system also needs to rely on PID control to control both the speed and the steering. Finally, the crawler needs to stop within 20cm of an obstacle or the end of the road. We tuned all sensors and PID control to achieve these goals. We also set up a html client with start/stop buttons to press on and use socket.io to send to a command.js server, which then sends to esp32 through udp to start/stop the crawler forward movement and PID tuning. The vehicle is controlled in wireless mode.

    EXPLORE NOW

    Electronic Voting

    Tool: C, Node.js

    E-voting will be enabled by unique devices (fobs) given to all registered voters. Voting will consist of creating a secure near field communications link between two fobs. There are in total of three fobs for voting. Original votes can only be communicated by a secure IR channel from one fob to another. Once the vote has been received, it should be communicated to the Poll Leader. It will send the results to a server which will log the vote to a database. Poll results will be accessible via the server via http, and there is a reset button that will restart the vote. Overall, this quest used IR TX/RX to select between Red, Green, Blue candidates. Furthermore, we got two buttons, one to select the LED candidate we want to choose, the other to send the final vote decision of the candidate.

    EXPLORE NOW

    Hurricane Box

    Tool: C, Ajax, JavaScript

    We connected the thermistor and accelerometer sensors to the ESP32 by using ADC, and connected the led with ESP32 using GPIO pins. The sensors output values are read into ESP32's ADC ports every 2 seconds once this microcontroller is flashed. Then, we send the sensor data through udp protocol over wifi from ESP32 to RPI. RPI IP is 10.0.0.138, and the udp protocol used Port 1131 for data transmission. In addition, LED status is data is received through udp protocol to turn ON/OFF the led light.

    We run the canvas_ajax.js file (server side) so that sensor values obtained through udp protocol are parsed and transmitted as an array using the "express" module's "get" from the server to the client. "Express" module's "post" method is used to receive led ON/OFF status data. Once again, UDP protocol is used to send back the led data to the esp32 over wifi.

    After running canvas_ajax.js file, we accessed the sensor_ajax.html (client side) through "get" method as well. To access the html page, we used port 1132, and the RPI camera page is set to port 1133. Since we have used DDNS and port forwarding, the html page can be accessed at "hrsun.ddns.net:1132" and there is a camera link button on this page that will take us directly to "hrsun.ddns.1133" to observe the physical devices. JQuery AJAX protocol is used in the html file to receive sensor data from the server. 2 Graphs (Accelerometer & Thermistor Graphs) are created on the html page to display the 2 sensor value separately, and sensors' new data are continuously pushed into a global array to update the graph. Once the LED Button is clicked, the led status data will be send back to the server using AJAX protocol as well.

    EXPLORE NOW

    Tactile Internet

    Tool: C, Node.js, JavaScript

    We connected the 3 sensors(thermistor, ultrasonic sensor, IR range sensor) to the ESP32 using ADC, and output these sensor values and graph them on a localhost:8080 to build a tactile Internet. The three sensors output values into ESP32's ADC ports every 2 seconds once this microcontroller is flashed. Then, when running the read_serialport.js file, sensor values are read through esp32's uart port. Next, sensor values are parsed and saved into a .csv file. Finally, charts.html file read the .csv file, graphs all sensor values onto the same chart, which is updated in real time every 2 seconds.

    EXPLORE NOW

    Dog Cat Classifier

    Tool: MatLab

    In this project, I did an binary classification on helping training the computer to recognize whether the picture is dog or cat. After several tests and training, using different machine learning skills, I finally made the computer have an accuracy of almost 99%.

    EXPLORE NOW

    Multicycle CPU

    Tool: Verilog

    Multicycle CPU is a pipelined CPU from computer organization. It includes several functions, such as ALU, rigisters, sign extension, etc.

    EXPLORE NOW

    GreenMate App

    Tool: Java

    We focused on designing GreenMate, an Android application that incentivizes users to live a more sustainable lifestyle. Acting as a tool to promote walking, riding bikes, and recycling, the app employs a customized character that changes on user input through a point system. The main functions of GreenMate include a step counter that records the user's walking or bike-riding and a recycling database and counter that communicates whether an inputted item can or cannot be recycled and increments the user's 'points' based on what they enter.

    EXPLORE NOW

    Pokemon Game

    Tool: C++

    This program is a game allows player to train their own pokemons and battle. There are stamina and money system while these calculate automatically after training or refilling the stamina.

    EXPLORE NOW

    Travel Recommendation App

    Tool: MatLab

    The project imported a large database and gave the top 10 recommended countries to visit based on different proportion of air cleanness and popularity that the user input through slider under different years.

    EXPLORE NOW

    Truss Design

    Tool: MatLab

    The design is to build a truss that supports the maximum weight as we can. By analyzing the truss with Matlab code, the theoretical load, cost, and load cost ratio can be calculated. These data will be helpful in visualizing the truss that will be built and determining the exact dimensions of the truss. The goal is to maximize as much load for the truss as possible. In terms of analyzing the data, actual maximum load can also be calculated using the actual length of the straws. The actual straw length is shorter than the joint-to-joint length since the straws are pinned on the gusset plate. Thus, the actual truss design will have a higher maximum load than the theoretical maximum load. The final truss design focuses on the maximum load instead of the cost or the load to cost ratio. In order to reach a higher maximum load, the design has been slightly changed by adjusting the angles and dimensions of the straws. However, Warren is still the style of the design, and the main changes of the final design are the internal dimensions and angles. Since the maximum load has been increased, it is reasonable that the cost may go up.