This page contains documentation of various projects I am working on or have completed, ranging from engineering, design, woodworking, and music technology. You may also want to check out my resume.
I was a member of both the signal processing and hardware teams of IEEE at UCLA's Wireless, RF, and Analog Project (WRAP), where we collaborated to create a 27 MHz communication link from scratch capable of sending messages across a room.
As a member of the signal processing team, I created and simulated a BPSK communication system in MATLAB, including demodulation with a phased locked loop, timing recovery, and packet detection. Then, I wrote embedded software in C to implement the system on a pair of STM32 microcontrollers. On the hardware side, I designed amplifiers, oscillators, mixers, and filters, performed simulations in LTSpice and Keysight ADS, and brought up circuit boards.
In this projct, algorithms for plucked string sound synthesis, distortion, and reverberation were implemented on a digital signal processor to create a musical instrument. This project combines several existing algorithms together to create a full end-to-end system of sound generation effects, and shows potential benefits of using an embedded system compared to more traditional personal computer-based approaches. Real-time implementations of the Karplus-Strong algorithm, clipping distortion, and Schroeder reverb algorithm are demonstrated using a modified ping-pong buffer approach to achieve low latency. The system is capable of generating sounds with effects in real time with a latency of 20 ms, which is considered to be within acceptable limits for a musical instrument. Additionally, the system has stereo output and three-voice polyphony, and can be played and fine tuned using an interface of buttons and knobs.
Treasure Tracker is a compass that points to coordinates set by the user rather than magnetic north. It allows users to record their current location and toggle between the compass pointing to four previously stored locations. Treasure Tracker is useful for navigation on outdoor hikes and adventures where there is no cellular data. This project was created by an interdisciplinary team consisting of me, Trevor Guo, Andrew Gautier, Getty George V, and Cameron Fiske at IDEAHacks 2022, a hardware hackathon.
As the team's electrical engineer, I designed and soldered the circuit. I also wrote code to control servo motors and interface a Teensy microcontroller with a GPS module and 9-DoF IMU.
Treasure Tracker recieved first place at IDEAHacks 2022, and was featured in a UCLA School of Engineering Article.
I co-led IEEE at UCLA's Micromouse project, instructing and mentoring 70+ students as they designed and programmed small autonomous maze-solving robots. I designed a PCB for students to use in the first quarter of the program to learn about the needed circuits and practice soldering and programming.
The PCB has circuits for voltage regulation, motor control, and IR sensing, as well as headers to plug in an STM32 Nucleo microcontroller. This design is an improvement from ones from previous years because it features space for battery holders, a programming header, and a UART header to connect to an additional breakout board.
As a Micromouse Lead, I reviewed schematics and board layouts for 20 Micromouse PCBs and ordered parts for them. I also coordinated and hosted IEEE at UCLA's intercollegiate All America Micromouse Competition.
Micromouse Lecture SeriesBudgie is a rhythm game for music education developed by me, Trevor Guo, Andrew Gautier, Getty George V, and Raymond Song as part of the BruinLabs entrepreneurship competition. The project features a physical shaker device that connects to a mobile app to provide feedback on the accuracy of the rhythm being played. Budgie aims to provide a hands-on, tactile experience for music students practicing rhythm.
As the team's electrical engineer, I designed the circuit to connect the microcontroller, gyroscope, charger, and other components together, and to control the vibrational motors and LEDs. I wrote the Arduino code for the ESP32 Microcontroller, including processing the signal from the gyroscope and connecting to the phone using Bluetooth Low Energy. Additionally, I was responsible for assembling and testing the physical product, which involved lots of soldering and 3D printing.
Budgie recieved an Honorable Mention award at the BruinLabs Demo Day.
Code Repository (I contributed the Arduino code)
In this final project for UCLA's Introduction to Electrical Engineering class, I implemented IR sensor fusion and PID control to program the small robot car to follow a curved path. Additionally, I wrote a C++ library to use quadrature encoders to distinguish forward and backward motor rotation. My car completed the path fastest out of 107 students in the class.
I participated in UCLA IEEE's Micromouse project, in which I remotely collaborated with fellow UCLA student Jason Wu to create a small autonomous maze-solving robot. We designed breakout PCBs for motor control and IR sensing using Autodesk Eagle and implemented PID Control and the Floodfill maze solving algorithm in C on an STM32 microcontroller. We further improved our mouse by adding a gyroscope and bluetooth module. Our mouse first place at IEEE at UCLA's All America Micromouse Competition in May 2021 by solving a maze the fastest.
I continued my Micromouse journey by co-leading the project for the 2021-2022 school year, teaching and mentoring the next cohort of Micromouse students. This role involved some technical work.
This project is a device to identify written characters/symbols based on pen stroke motions. When the user writes a character, acceleration and angular velocity data is collected, and the motion is classified using a neural network. The system can recognize six simple distinct characters resembling capital 'L' shapes and lines in certain directions. A potential application of this concept would be a stylus that does not require a specific writing surface and can be trained for the writing styles of different individuals. This project was my final project for UCLA's Engineering 96C class (Introduction to Engineering Design: Internet of Things).
This project is an internet connected checklist to improve organization and focus in a remote learning environment. It was designed and prototyped using an ESP32 microcontroller and an electronic circuit on a breadboard. An OLED display shows the list of tasks and a 7 segment display shows the number of tasks yet to be completed. An LED and piezo buzzer are used to beep when the user makes selections. An IR emitter/reciever pair are used to monitor how long the user has been in their seat and remind them to take a break. This project was designed at IDEA Hacks 2021: Home Applications, a hardware hackathon hosted by UCLA IEEE.
This project is a 3D model for a recorder (instrument) created in Autodesk Fusion 360. It is based on pre-existing technical drawings for a recorder. I am currently in the process of getting this project 3D printed.
This project is a work in progress that has been indefinitely postponed due to COVID-19/lack of access to tools to complete it. All of the necessary wood has been gathered and most of the individual pieces have been cut to size, but the table needs to be assembled, sanded, and finished. Shown below is a CAD drawing of it that I created in SketchUp.
To create these two bowls, I used both traditional and CNC woodworking techniques. Before hand turning, the bowls were first assembled from concentric plywood rings cut using the CNC router (a test run of this process is depicted in the second photo). This method is less wasteful of wood compared to usual bowl turning, where the entire inside of the bowl needs to be hollowed out.
This project is an effects pedal that I created at a summer workshop at Stanford's CCRMA called Embedded DSP with Faust. It uses a Teensy microcontroller with an audio shield. The Teensy code was written in the Arduino language, and the signal processing algorithm was written in Faust. I made the box for this project using a laser cutter. Different programs can be loaded onto the Teensy using the USB to create different types of sounds. With the current program I am running, the pedal includes a flanger, low pass filter, and echo.
This project is a wind MIDI controller with buttons that change pitch similar to valves on a trumpet. The project features a wind (breath) sensor to control volume and a soft membrane potentiometer slide to shift pitch either continuously or discretely. I completed this project at the Designing Physical Interactions for Music workshop at Stanford University's Center for Computer Research in Music and Acoustics.
I designed this shelf in the CAD program Vectric Aspire and cut out the pieces using the CNC router. The shelf is made of plywood, and the pieces fit together using box joints, making this project very sturdy.
This project was designed as a way to test my high school's new CNC router, and is my first project using this tool. I designed this project using the CAD program Vectric Aspire. The board is made of maple and mahogany.
Pictured are several bowls I turned on the lathe. The method for creating the plywood bowls is described in further detail here.
Pictured are an end-grain cutting board, simple cutting board, and rolling pin.
The tongue drum is a percussion instrument in which beams vibrate at certain frequencies to create tonal sounds. To design this instrument, I used the equation for the natural frequency of a cantilever beam to calculate the required ratios between the lengths of the beams to produce notes from the pentatonic scale. The drum features a maple top to produce the tones, hickory sides, and a removable sliding cherry bottom to store mallets and make minor tuning adjustments.
Pens were my first lathe project. I made around 15 pens in my first year of woodshop class, many of which I gave as gifts to my family and friends. Six of them are shown below.