Project Portfolio

Electronics/Hardware

Power Management for Stratospheric Chemistry Instrument

Independent Study, Spring 2017

During the spring semester of my junior year, I worked with the engineering team for Harvard's Anderson Research Group to help complete the design of an atmospheric chemistry instrument intended to measure the concentration of key ozone depleting chemical species in the stratosphere. I focused on power system design, and worked to develop a power management board whose purpose was to isolate the main power supply, which powered the pumps, laser and the central computer system, from sensitive measurement subsystem power supplies. The power management board that I designed consists of a custom 0 - 7.5V adjustable linear regulator, isolated Flyback and Cuk converters for dual supply functionality, and extensive common mode and differential filtering.

Project Report

Multi-cycle MIPS Processor

CS141, Fall 2016

As part of my CS141 final project I worked with one other student to design an FPGA based MIPS processor using Verilog. After helping to design the arithmetic logic unit (ALU) and register file, I implemented the multi-cycle data path and finite state machine control unit. I then wrote an assembler script to convert limited instruction set MIPS assembly programs to machine language. To test our multi-cycle MIPS processor, I wrote multiple assembly programs, including a recursive fibonacci calculator, assembled them with my assembler, and loaded the resulting executables into program memory, before running each program and verifying the results in data memory.


Adjustable Power Supply

Frustration of Electronics, Spring 2016

This project was the first of three embedded design projects I carried out in ES91r, the Frustration of Electronics, a supervised reading and research course I took during the Spring of my sophomore year. I worked with two others to design a portable power supply device, originally intended for use by students in Harvard’s introductory Electrical Engineering course to power their circuits without a benchtop power supply. I led my team through the brunt of each major design phase, keeping us on track despite simultaneously pipelining other design projects, dealing with short turnarounds between project deadlines, and accommodating scheduling difficulties among my teammates. After a series of critical design reviews with Harvard Electrical Engineering faculty members, and multiple design iterations, we achieved a functional, battery powered, adjustable power supply with overvoltage and overcurrent protection, a dynamic range of +/- 1.5V-10V and the capacity to source or sink current upwards of 500mA. Although we did not meet each of the technical specifications that we initially defined, the end product was a strong first prototype.

Project Report

Operational Transconductance Amplifier

ES154, Electronic Devices and Circuits, Spring 2016

Using the Cadence Spectre Circuit Simulator, I designed and characterized the performance of an operational transconductance amplifier. I started with a hand-design, considering the best circuit topology to meet the defined performance specifications, and calculated transistor parameters using small-signal approximations to ensure the amplifier behaved within its specifications. Due to the unavoidable presence of transistor mismatches, which cause inaccuracies such as input offset voltage, I brought my hand-design into the Cadence design tool and altered my original transistor parameters to correct for any unexpected behavior. I then characterized the DC gain, bandwidth, power supply rejection ratio (PSRR), common mode rejection ratio (CMRR), and phase margin of my OTA, and analyzed the tradeoff between gain and bandwidth in amplifier design.

Project Report - Part 1 Project Report - Part 2

Instrumentation Device

Frustration of Electronics, Spring 2016

In the second of three embedded circuit design projects for the course, ES91r, I worked with three others to design a high-precision instrumentation device to interface with a load-cell. Precision was a critical consideration throughout the process. Consequently, important design considerations were made to ensure signal integrity: utilizing differential signals and an instrumentation amplifier to combat noise, designing an anti-aliasing filter with appropriate pass and stopband frequencies, ensuring a sufficiently high analog-to-digital conversion rate to allow capture of high-speed events, and making layout design decisions that reduce the effect of digital transients and EMI on the analog signal on its path to the digital realm.

Project Report

Fast Reacting Heart Rate Monitor

The Joy of Electronics, Fall 2015

In my introductory Electrical Engineering course, I worked with one other student to design a fast reacting heart rate monitor. Utilizing an infrared sensor to sense blood flow through the finger or ear, we were able to detect pulses with a predominantly analog signal conditioning circuit that we designed, as well as calculate and display the user’s heart rate with an Arduino. In both our hardware and software design, we focused on achieving accurate readings capable of keeping up with a dynamic heart rate and producing an accurate output within 3 seconds of the first detected pulse. Through frequency modulation, significant analog filtering, and a precise heart rate calculation algorithm, we were able to achieve just this.

Project Report

Wireless Charging Station

Frustration of Electronics, Spring 2016

My team and I designed a Wireless Charging Station meant to interface directly with a small remote-control car. While we were unable to produce a physical prototype, we created our own project specifications, conducted research on wireless power transfer, and designed a final circuit and PCB. This intense design process not only increased my knowledge of power systems, but also proved to be an excellent project experience, beginning with little knowledge of the subject and finishing with a complete design within the span of two weeks.


Remote Control Airplanes

Personal Projects

I began working with RC aircraft in highschool, beginning with at kit, pictured on the left. Since then, I've applied the skills that I've since acquired to design both the body and control electronics for an RC aircraft with 3' wingspan.


Software

Optimal Trajectory Tracking Controller

ES158, Fall 2016

Inspired by a challenge that my robotics club, RFC Cambridge, was facing, I worked with one other student to design an optimal trajectory tracking controller for a two wheeled nonholonomic robot. Our initial approach for this control problem was to use a simple PI controller to track the reference path. However, I noticed that this simple controller was not nearly robust enough considering the time-varying nature of our system. After some research, we determined that we would likely see improved results using the time-varying Linear-Quadratic-Regulator (LQR), a strategy that utilizes the Differential Ricatti Equations to determine the optimal time-varying feedback gain. The results of this controller were strong. However, since LQR does not account for system disturbances and noise, we introduced a Kalman filter, the optimal observer, to estimate the our robot's true position. Combining LQR's optimal feedback gain with an optimal observer, we achieved a robust Linear-Quadratic-Gaussian (LQG) controller. Using this strategy, we could track our reference path in the presence of simulated noise and disturbances.

Project Report

Sub-Nyquist Sampling

AM205: Advanced Scientific Computing, Fall 2017

Signal sampling, within the field of Digital Signal Processing, is typically governed by the well-known Nyquist criterion. Nyquist's theory claims that a bandlimited signal can be perfectly reconstructed from its samples if the system's sampling rate exceeds twice the signal bandwidth. In this project, we push the boundaries of the Nyquist criterion, developing a scheme which achieves precise signal reconstruction of a bandlimited signal using sub-Nyquist sampling. This technique determines a signal's instantaneous bandwidth via a short-time fourier transform of the signal's taylor approximation, and adjusts the sample rate based on the measured instantaneous bandwidth. Care was taken to ensure that the method that my project-mate and I designd could be run in real-time provided custom hardware. While meant for real-time systems, the scheme that we developed could also be used generally for data compression and reconstruction of any bandlimited signal.

Project Report

Image Segmentation

ES255: Statistical Inference, Fall 2017

Image segmentation is commonly used in the field of computer vision to identify the boundary between regions within an image or video stream. I implemented a binary image segmentation scheme in MATLAB, based in part on the 'GrabCut' method widely used in professional image processing toolboxes. This approach makes use of a key statistical model, the markov random field, to characterize an input image. An optimal segmentation is then found using an iterative graph cut energy minimization/maximum flow algorithm.

Project Report

Self-Camera Calibration

CS283: Computer Vision, Fall 2017

What do robotics, forensics, and autonomous driving have in common? Each makes heavy use of a computer vision system, often one that requires extreme precision. As these fields, and others, advance, the demands that each makes on the precision of its vision system heightens. Correspondingly, the need for simple and accurate methods of camera calibration grows stronger. I implemented a self-calibration scheme that fully calibrates any camera provided three image views taken from the same point in space. This implementation determines each of a classical camera's intrinsic parameters: focal length, principal point, and skew factor. The implementation utilizes fundamentals of linear algebra and concepts of projective geometry developed by the computer vision researcher, Richard Hartley.

Project Report

Steganographic Botnet Communication Channel

CS263: Security Systems, Fall 2017

I worked with two others to create SocialBotnet, a covert communication channel and steganography protocol for bot networks, which provides limited detectibility and robustness to obstruction. SocialBotnet utilizes the popular social media platform, Twitter, to covertly communicate with malware-infected, network-connected “bot” computer systems with authenticity and integrity guarantees. It uses a unique image-based encoding scheme, which I designed and implemented, to camouflage messages as seemingly innocuous images within comments on Tweets from moderately popular Twitter accounts. Bots scan for covert messages on a range of Twitter accounts, decode the message, and execute any instructions that it contains on the infected machine. Note that this project does not generate or distribute malware; instead it serves as a proof of concept for the existance of covert communication channels between corrupted machines through popular socal media sites.

Project Report

Npuzzles

CS51, Spring 2015

I helped implement NPuzzles, written in the functional programming language, Clojure, to solve m-by-n sliding tile puzzles with a recursive implementation of the A* best-first search algorithm. I was also involved in the beginning stages of using a genetic algorithm to solve sliding-tile puzzles, but ultimately focused predominantly on the A* algorithm. A* can be quite data intensive, requiring traversal through all solution paths before reaching a goal/solution state. Therefore, first and foremost, we designed for efficiency and modularity, iterating through multiple designs before choosing our core data structures. We tested our program with various admissible heuristic functions and achieved an average solve time for 3x3 puzzles of approximately 350 milliseconds.

Project Report

JamOn

CS50, Introduction to Computer Science, Fall 2015

JamOn is a localhost based website that I created with a friend during my freshman year introductory computer science course that allows you to more easily share music with your friends. Originally, it interfaced with the SoundCloud API and allowed you to invite friends to collaborate to make a playlist. Whether you are preparing a playlist for a party or simply looking for music suggestions from your friends, this site would prove very helpful.

Project Design Overview

Contact Me

Email: liamjmulshine AT gmail dot com

Github: https://github.com/ljmulshine