Projects.


Most of my work are related to micro-controllers and embedded application, using hardwares such as PIC32, Arduino, Raspberry Pi, Beaglebone Black and IoT dev-boards such as Particle.
Here are a bunch of interesting engineering projects I've worked on.


Gradient Descent Accelerator. ASIC Design (HDL) Project.

I designed and implemented an ASIC accelerator that performs Stochastic Gradient Descent and excels the baseline software benchmark by 50 times. Used fixed point to store decimals and adapted Goldschmidt's division algorithm, Taylor Series expansion and Horner's method to quickly approximate a softmax filter over MNIST dataset.

Generic placeholder image

RPi Intelligent Security System. Raspbery Pi Project.

We built a smart home security system and server on Raspberry Pi that supports live-monitoring of the security footage, moving the surveillance camera’s viewing angle, detecting intrusion and controlling other parameters such as lighting and air conditioning in the house. By logging in to the web interface served by the Raspberry Pi, we can easily turn on/off a light at home and watch live feed from the camera. We fitted our design into a miniature interior design model.

Generic placeholder image

PIC32 Gaming Console. PIC32 MCU Project.

Our project design is an PIC32-based gaming console that supports NTSC video output, audio output and takes input from a NES Controller. With the console comes with a demo game that we implemented with the engine, Rope Jumper. We built corresponding software libraries to support rendering all the game components. Finally, we developed an easy-to-use game engine that PIC hobbyists can use to develop any game on this console.

Generic placeholder image

Sony Camera Product Storage Calculator. HTML/JS Project.

A pure HTML/JS webpage that interactively calculates the amount of storage needed for selected camera products.
Created during my summer internship.

Generic placeholder image

Touchless Xylo. LeapMotion, Raspberry Pi, Arduino Project.

A touchless xylophone controled with Leap Motion infrared sensor. The python application running on the computer fetches the current orientation and position of the hand and encodes the information into HTTP request to the flask server running on the Raspberry Pi. Then the server on the Pi performs a calculation and controls the Arduino to drive the Parallax Servos.

Generic placeholder image

ARM-based Rhythm Game. FRDM-K64F Project.

Music Rhythm Game created on ARM-based FRDM-K64F dev-board as final project from ECE3140 Embedded Systems. Main target of the game is to hit the falling blocks with the controller at the right beat of the music and gain fever. Finished product feeling with NES Controller, LED Matrix and SD Card integration.

Generic placeholder image

Motor controller and tachometer. PIC32 Project.

A digital tachometer using a pair of infrared LED and photodiode. Then the output is fed into an op-amp comparator, utilizing hysteresis for better output. The result is fed into an Input Capture Module. Then PIC32 computes the PID equation to drive the fan with PWM. The fan circuit and PWM pulse is opto-isolated for max protection.

Generic placeholder image

DTMF dialer with speech feedback. PIC32 Project.

A Dual Tone Multi-Frequency Generator like those used on any cell phone. As you press the buttons, the system will speak digits. The system will record all the input digits and plays back to simulate a redial. All the tones are generated with Direct Digital Synthesis using a Sine look up table.

DTMF

Sumo Wrestling Robot. Arduino Project.

A Wrestling Robot that participated in the 2015 Fall Mechatronics Sumo Robot Competition and won 8th place. Customized H-Bridge design to obtain more power from the servos. Powerful mouse-trap-based slapper mechanism ensures lethal aggression.

Generic placeholder image