Bus Tracker

November 2023

At my new apartment, there's a bus stop about a 3 minute walk away that speeds up my commute to class by about 8 minutes. I realized that I was checking Google Maps everyday for the transit times, and figured I could find a way to get realtime bus data on a screen in my apartment instead.

LA Metro offers a transit API with realtime data using Google's GTFS format. Unfortunately, this meant that I couldn't just use an ESP32, since the API would only send the status of the entire bus system, rather than just one specific stop, which was about 3x as much data as the ESP32 has RAM.

The solution? Create a server that runs on a larger device to act as a middle-man.
With that in mind, I have a server at home that grabs the bus data, parses it down to just the times of the next buses, and offers that up as an HTTP server. Now, the ESP32 can just do a simple HTTP GET request, and we're in business.

Engineering is about spending 3 hours once to save 30 seconds everyday right?

timjacques.com

Fall 2023

This website is one of my current projects! It's been fun to work with pure HTML and CSS. Webdev can be a bit of a rabbithole, so trying to stay away from fancy frameworks and JavaScript has made things a lot simpler.

As I find more time to work on this, hopefully this page and others will become more fleshed out.

Discovering the Kroger API

Summer 2023

During Summer 2023, I lived with a group of mechanical engineers that always cooked together. Each of the six of us would cook once a week, and we'd only have to cook once a week and get ready-made meals the rest of the week.
Good deal, right?

To feed six hungry college students though, we'd go through about $300 of groceries a week, and spend 2 hours at the grocery store each time. That's far too long, so instead we opted to write a program that would categorize and order groceries for us to pick up.

Kroger, our local grocery store chain, has a public API that allows adding items to a virtual cart, so we wrote a program that takes in data from a spreadsheet, consolidates all of the different recipes, then adds it to the cart!

Now, getting food for the week is just as fast (or slow) as figuring out what to cook.

Starship Micromouse

Spring 2023

After leading Micromouse, I still wanted to create my very-own mouse, but had to make it a bit special. There are these food delivery robots (Starships) that roam around UCLA's campus, so I decided to make a tiny one as a fun micromouse.

The hardest part about this one was just the design itself- I had to model the entire Starship myself, and design the PCB such that everything fit together. Because of the model, the robot was already pretty large for the maze, so the PCB inside had to be as compact as possible.

As a mini Starship, it looks fantastic! I even put an LED into the flag so that it would blink like the real ones.
As a micromouse, however, it was not so great, since the front and back wheels made it challenging to turn accurately. The next version will make it such that the front and back wheels aren't used at all, to hopefully prevent this issue.

In-progress screenshot of the internal PCB.
The hole in the center is for the motor connectors to poke through.

Transparent screenshot of the Starship hull against an image of the real thing.

A render of the final starship.

The final little starship on top of a real one!

SystemVerilog RISC-V Processor

Winter 2023

For my computer architecture honors section, I was tasked with implementing a limited-instruction-set RISC-V out of order processor in SystemVerilog. Specifically, I needed to implement a few R, S, and I-type instructions in a 2-issue, 7-stage pipelined processor that ran in simulation in ModelSim.

Using ModelSim, I was able to write, simulate, and debug all of the various modules related to the architecture (Re-Order Buffer, Reservation Station, etc).

IDEAHacks: BoomBox

January 2023

For my second hackathon, the theme was "gameifying", so my team decided to make household chores competitive!
BoomBox was designed to have a massive, satisfying button to press that would give the user satisfaction for completing their chores.
My main contribution was again in the hardware, as I designed the enclosure and giant RGB button in CAD. Without a better mechanism, I designed the button's acuation around pen springs, since no larger springs were available, and the actual press detection around an IR break sensor.

3D render of the BoomBox.

3D cutout to show janky (but impressive) button mechanism.

The final working prototype.

FPGA Brickbreaker

Fall 2022

I wrote SystemVerilog code from the ground up to create a version of the iconic Atari video game Brickbreaker on an Intel-Altera FPGA, playable on a VGA monitor with various game modes and difficulties.

BOULDR

Spring 2022

BOULDR is a website dedicated to browsing and rating certain routes at climbing gyms. Together with 3 other people, I designed BOULDR for my software construction class.

The website used a Firebase backend, with the ability to search and filter for various features. Users were able to log in, keep favorites, leave reviews, browse various climbing gyms' offerings. Gym staff were able to interactively add and edit database content, allowing for a completely usable experience.

BOULDR uses React.js, Firebase Auth, Firebase Store, and more.

The homepage for BOULDR.

IEEE Digital Design, Architecture, and Verification

Fall 2021 → Spring 2022

IEEE's DAV project is a FPGA and digital design introduction that I participated in as a member during 2021-22 and later became project lead for in 2022-23. Students would learn SystemVerilog from the ground up, and complete more complex projects over the course of the school year, including the VGA & I2C protocols. At the end of the year, students were given the choice between completing a capstone project of their choice or to complete a Digital Audio Visualizer, which involves implementing a Fast Fourier Transform in hardware and displaying the output of a microphone on screen.

When I completed DAV, I did the Digital Audio Visualizer project, and implemented an FFT on the FPGA.

IDEAHacks: LoRax

January 2022

LoRax is a forest fire detection platform that I designed along with 4 other people during the hardware hackathon IDEAHacks in 2020. Essentially, LoRax was a mesh-networked node system that would use an array of sensors to detect weather patterns and potential wildfires.

My part in the design was to choose the parts and overall hardware design, so I spent my time in CAD creating a 3D-printable enclosure for a tree-mounted node. Additionally, I helped write portions of the software that interfaced with the array of sensors, creating hardware proof-of-concepts for the more computer science-inclined group members to refer to.

Even through it was my first hackathon, we won 3rd place!

3D render of the tree-mounted node.

Final 3D-printed prototype. Pretty dense for a breadboard-based device!

The other node, designed to look like a rock.

The tree node attached to a real tree.

Drone Design

Winter 2022

One of my classes last year was a drone design class, which involved 3D modeling and manufacturing (through 3D printing and laser cutting) a drone from scratch. With a team of 4, this is the drone we designed:

Our 3D printed and laser-cut drone chasis.

IEEE Micromouse

Fall 2020 → Spring 2021

IEEE Micromouse is an autonomous maze-solving robot project that I was a member of in 2020-21 and later became project lead of in 2021-22. Students learned how to build their own robotic mouse from the ground up, learning about embedded design, power systems, PID control, and maze-solving algorithms. During the year that I participated, I won second place in the competition for making my mouse super quick!
This project involved PCB design, lots of embedded programming, and a solid foundation for making something of your own.

In the photos below, you can see the design for the stock micromouse that we used to teach the students before they were given the chance to build their own micromouse.

Stock micromouse I designed for students to use.

A render from Fusion 360 of the stock micromouse.

My personal micromouse from the COVID era. We only designed the IR board, due to the online nature of the project.

Marching Band RGB Prop Domes

Fall 2019

During my senior year of high school, I was tasked with designing the electronics for LED-covered "domes" for my marching band's show, that was called "When Worlds Collide". These domes essentially were remotely controlled PVC hemispheres that needed to light up on time during the show. This involved determining the best radio transceivers to use over an entire football field, researching and purchasing the electronics, and writing reliable code for showtime. See them in action below!