Projects

Industry

Squishy Robotics – Electrical Engineering Intern

I was tasked with designing a sensor pod and an active system to gather sensor data, stream video, and actuate a tensegrity utilizing an optimized control stack. The two boards below are the two final products of the Summer.

Personal

Frog vs Cilantro

A small bullet-hell game made by learning pygame. Inspired by my dislike of cilantro and like of frogs. Find it here!

frog

Binary Clock + Photo Booth Bot

Pine64 Powered binary clock + Photo Booth using the Pi-2 Bus, RPi.GPIO, LEDs, Resistors. Twitter API twurl, and a webcam. Find binary clock details here, photo booth stuff here as well as a demo.

Fight Stick

Arcade Fight stick controlled using an Arduino Uno reflashed to be a USB Controller for GNU/Linux and Windows. More details here.

Arias Research Group

Bluetooth Enabled Printed Electrode ECG Wearable

I was tasked with getting the communication between the nRF52 and ADAS1000 to properly collect and send BLE packets to a phone to visualize and analyze data.

Fully Printed N-Type Organic Thin Film Transistors

The group was interested in being able to print Top Gate Bottom Contact Organic Thin Film Transistors (OTFTs) and possibly design simple digital circuits by integrating our already well characterized P-Type OTFTs.

Pressure Sensor Device Characterization

I helped a post doc characterize their pressure sensor by putting together a GUI to control a stepper motor to repeatedly apply a set amount of pressure to their device. Find a demo and the code here.

Pioneers in Engineering

Bringing STEM education to under privileged high school students through mentorship and an 8 week robotics competition

Electrical Coordinator

Oversaw the development of the electrical system, coordinate the supply chain for parts, and integrate adjacent software and hardware projects for the field and robot electronics. It was a pleasure to be a part of a larger cause, and the work we put in along with the friends I made will always be a part of me.

TeamX.png

Smart Sensors Project Manager

Recruit and train new staff in Eagle and Electrical Engineering / PCB design basics to design the latest electrical system on the robot\

DevOps

Deploy Beagle Bone Blacks with custom software, and send out secure updates + develop a continuous integration system for the club’s central code repo

travis-ci

Leaky Revamp

Design the PCB and revamp the RFID activated door opening robot. Leaky Demo

School

EECS249A – Embedded System

As a capstone final project, my team built a fully hardware implemented, Hasbro Bop It driven rhythm game: Bop It Revolution. Bop It Revolution is a discrete note, single dimension rhythm game similar to Guitar Hero or Tap Tap Revenge that requires the player to actuate inputs on beat from a predefined pool of buttons. We took this style of gameplay and translated it into something no one has ever seen before – a bare metal processor, LED strip beatmap, and Hasbro Bop It as the controller. This project involves both hardware and software level of integration in various topics the team learned in the course – low level interface programming in C, asynchronous FSMs with timers and interrupts, and digital communication protocols. Find a demo here and the Github repository here.

20191217_131932

EE230B – Solid State Devices

We were tasked with designing 20nm channel length Bulk MOSFET and a 20nm channel length FDSOI MOSFET. The performance metrics were 0.86V for Vdd, 900uA of On current, 150nA of Off current, SS of 100mV/dec, and DIBL of 100mV/V. We optimized a lot of performance parameters including doping species, concentration, and energy for LDD, Body, and Contacts. To tune the performance and extract metrics, we wrote parts of scripts to obtain IdVg and IdVd plots and played with the gate work function.

EECS151 – Introduction to Digital Design

riscv

Our task was to create a three stage pipelined RISC-V architecture CPU on an FPGA running above 50 MHz capable of interfacing with memory mapped LEDs, switches, UART, I2S, and VGA by utilizing FIFOs and memory IP blocks.  See the full project report here.

EE143 – Micro-fabrication Technology

We spent 10 weeks fabricating devices on the 10 micron range in an undergraduate clean room. Afterwards, we spend 3 weeks taking measurements on a 4 probe device to characterize the devices we made.

CS162 – Operating Systems and System Programming

Implement key features in the educational operating system PintOS including the scheduler, argument parsing, user program syscalls, filesystem syscalls, buffer cache, extensible filesystem, and recursive directories.

EE105 – Micro-electronics and Devices

Op Amp Characterization

Test a real op amp’s ability to amplify signals while observing non-ideal effects such as slew rate limited growth and input resistance while observing the gain-bandwidth product effect.

Diodes and Photodetectors

Transmit bits by sending out a blinking signal, where the receiver picks up the light and amplifies it to be read at the receiver side LED. Bit rate was limited with an opamp that could not keep up with a high bit rate due to its slew rate limiting.

MOSFET Characterization

By adjusting gate-source voltage against a stable drain-source voltage on an NMOS Transistor, we could observe the three different regions of operation by measuring the capacitance of the MOS. Then used the transistor to make a touch detector.

Single Stage Amplifier

Design a single stage common source amplifier with source degeneration to fit specific parameters such as middle band gain, hi and low cut off frequencies, and output swing. Learned how to approximate poles and zeros to fit specific parameters and use decoupling techniques to fit parameters.

Multi Stage Amplifier

Design a multi stage amplifier using a common source with source degeneration, a common gate, and common drain structures to further increase the bandwidth of the amplifier. Used two port models to simplify the circuit to then calculate the RC constants and set bandwidths without loss of gain.

multiamp-1

CS61C – Great Ideas in Computer Architecture

Flight Map

Implementing a flight map simulation using linked lists

Helped learning C, pointers, memory, and debugging skills

CALL

Implement basic Assembler and Linker in C and MIPS

Logisim Processor

Create a basic processor in Logisim

regfile
Thread Level Parallelism

Used pragma OMP, loop unrolling, and x86 intrinsics to speed up a slow algorithm

Spark MapReduce

Utilized Spark’s MapReduce to compress videos frame by frame.

EE16B – Designing Information Devices and Systems II

Simulated BMI

Categorizing different neuron firings from a simulated BMI using Discrete Fourier Transform to view the energy of different states of a subject and Principal Component Analysis to sort different signals from neurons.

Sixt33n Bot

A dual motor voice controlled robot. Mic Demo Bot Demo

13320430_10201761859484864_3000290136222390279_o
car

CS61B Data Structures and Algorithms

NBody
nbody

Planetary orbit simulation.

Array / Linked List Double Ended Queue

Implemented the Array and Linked List Double Ended Queue. API included addFirst, addLast, isEmpty, size, printDeque, removeFirst, removeLast, and get.

Editor

A graphical text editor.

editor
Bear Maps

Google Maps-like mapping using OSM. Has zoom, refocusing, and shortest path implemented.

bearmaps

EE16A – Designing Information Devices and Systems I

Light Sensor Scanning

Use single pixel photodiode to try and image a playing card

Resistive Touch Screen

Create a resistive touch screen with 9 spots

res_touch
Capacitive Touch Screen

Made a single pixel capacitive touch screen

cap_touch
Acoustic Positioning System

2-D Sound Based positioning

loc
sigs

CS61A – Structure and Interpretation of Computer Programs

Hog

A mathematical, dice rolling based game

hog
Maps

Webapp that cuts a map into sections based off of food preference. Uses k-means to determine cluster centers for restaurants that the user likes.

maps
Ants

Game similar to Plants vs Zombies, where there are ants that use food to fight against an onslaught of Stanford bees.

ants
Scheme

Scheme interpreter implemented in Python

scheme