Dominic Olson's Projects

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.

Wireless Communication System | October 2022 - May 2024

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.

Video Demonstration

Embedded Physical Modeled String Instrument | January 2024 - March 2024

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.

Video Demonstration

Treasure Tracker | January 2022

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.

Full Project Description

Slide Deck

Code Repository

Video Demonstration

Micromouse Lead | May 2021 - June 2022

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 Series

Previous Micromouse Work

Budgie | June 2021 - August 2021

Budgie 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.

Slide Deck

Code Repository (I contributed the Arduino code)

Video Demonstration

Line Following Car | May 2021 - June 2021

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.

Video Demonstration

Micromouse | October 2020 - May 2021

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.

Handwriting Recognition with EmbeddedML on the SensorTile | February 2021 - March 2021

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).

Video Demonstration

To-Do Cue Queue (IDEAHacks) | January 2021

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.

Full Project Description

Video Presentation and Demonstration

Recorder 3D Model | November 2020

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.

Side Table | January 2020 - March 2020

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.

Plywood Nesting Bowls | November 2019 - January 2020

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.

Digital Audio Effects Pedal | July 2019

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.

Video Presentation and Demonstration

Trumpet MIDI Controller | June 2019

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.

Video Presentation and Demonstration

Shelf | April 2019 - May 2019

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.

Mancala | 2019

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.

Bowls | 2018 - 2020

Pictured are several bowls I turned on the lathe. The method for creating the plywood bowls is described in further detail here.

Cutting Boards and Rolling Pin | 2018

Pictured are an end-grain cutting board, simple cutting board, and rolling pin.

Tongue Drum | March 2018 - May 2018

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 | October 2017 - December 2018

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.