Table of Contents

Embedded Design

pi_gps_4.jpg Raspberry Pi 10 Hz GPS / IMU Data Logger - Feb 2015

To support field testing, I built a 10 Hz position tracking logger using GPS, IMU, and Raspberry Pi.



i2s_dac_top.jpg Raspberry Pi I2S Audio Amp - March 2015

I built a small I2S DAC PCB in order to get better quality output from a Raspberry Pi 2. This board uses digital I2S audio from the Pi to a PCM5102A DAC from Texas Instruments, as well as a small audio amplifier so that the output can be connected directly to a speaker.



ASCII���METADATA-START��wUUUUUUޭ�����2�����34�}����%UUUUUUUUޭ����������UUUUUUUUޭ��UUUUUUUUޭ����UU���UUUUUUUUޭ����UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ������UUUUUUUUUUUUUUUUUUUUޭ���C�A�LUUUUUUCu�rUU0xDCB0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ���T�U�N�AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ�ﮮ��F3�y}��)�WN�����������������������������������9�7�����������~��������������������������������������������B��������������2���%�������'UUUUUUUUUUUUUUUUUUUUޭ��KJKJ�&���������S�����������"����34����}���������Z����Ѹ��k���q��1$���%�c&��޵���>�������fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�3Q�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�3Q���"A�3Q�"1�"A�"1�3Q�fa�fa�fa�fa�fa�3Q�3Q�3Q�3Q���������"1�3Q�fa�fa�fa�fa�fa�������fa�3Q���3Q�fa�3Q���3Q�fa�fa�fa�fa�fa�	���	���	���3Q�3Q�"A�3Q�3Q�fa�"A�"A�3Q�fa�fa�fa�fa�"A�"A�3Q�"A�����"A�"A�fa�3Q�3Q�3Q�fa�fa�fa�fa�3Q�3Q�3Q�3Q�����3Q���fa�3Q�3Q�fa�fa�fa�fa�fa�fa�fa�fa�3Q�3Q�������fa�3Q�3Q�fa�fa�fa�fa�fa�fa�fa�fa�3Q�����3Q���"A�3Q�3Q�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa��8������Y��*���Ԥ���������������������������������������9�����������������������������������������������������	�ї��	��	��E��	��	��E��	��	��E��	��	��E��������������������������������UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ�ﯯ�����V���������f7���>��\�����v�4wP�}���Y������H<��9���
�g����<�������������K���B�2����t����
�!������������������������������������������������������������������������������������������������������������������������������������������9�����f�r�3�UUUUUUUUUUUUUUUUޭ��UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ��UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ���������UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ��UUUUMETADATA-END PCM20707 USB Headphone DAC + Amp - March 2015

Originally designed to be used with my security system, I ended up building a pretty neat little USB headphone DAC. This little board has a high quality audio output to be used with headphones or an optional onboard mono amplifier to directly drive a speaker. Works with Android too!



door_controller_pcb_populated.jpg Door Controller - July 2012

At the Georgia Tech radio station, I wanted to install an access control system with four RFID card readers and four doors. I designed a controller using a Cypress PSoC that is modular and can operate independently or with computer control over a serial port.



inside1.jpg Movement Detection Logging using Arduino - November 2011

Someone started vandalizing my bike, and I wanted to find out who it was to make it stop. So I made a device with an Arduino and accelerometer that would detect motion and log the time into EEPROM. I could later review the time and compare it to security cameras.




Home Automation

DAX Home Automation - 2017 to Present

DAX is a custom home automation platform that I have been developing since 2015. A Python core runs on a Raspberry Pi and sensors communicate over WiFi, Z-wave, and custom 2.4 GHz protocols. Control panels are Android tablets that display a web interface.



led_lights.jpg DAX Lamps and Ambient Lights - 2016 to 2021

Using custom ESP32 wireless devices, I created a series of custom LED lighting fixtures that use the individually addressable WS2812B LED strips. The lights have a local control with buttons, nearby control with Bluetooth, and remote control over WiFi with DAX Home Automation.



daxesp1.jpg DAX ESP32 Wireless Devices - 2018 to Present

As part of DAX Home Automation, I made a series ESP32 Wireless Devices that run a configurable firmware and communicate with MQTT and HTTPS for remote updates. The sensors are used for ambient LED lighting, environmental monitoring, and audio alerts/white noise.



nalig_master.jpg Apartment Security System - 2012 to 2017

Since the end of 2012, I have been designing my own security and home automation system. The system integrates several of my other projects, including the wireless sensors, serialMP3, EnviroNode, and the LED_Panel. The system monitors doors, motion sensors, cameras and more!

ASCII���METADATA-START��UUUUUUޭ�����������*��+����UUUUUUUUޭ����������UUUUUUUUޭ��UUUUUUUUޭ����UU���UUUUUUUUޭ����UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ������UUUUUUUUUUUUUUUUUUUUޭ���C�A�LUUUUUUCu�rUU0xDC20UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ���T�U�N�AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ�ﮮ��F��+���[N������������������������������������<�:
���������+�������������������������������������������l�������������������������UUUUUUUUUUUUUUUUUUUUޭ��KJKJ�&�����"���e������������"�����*����+���(��(�����������������3y�����`���������k���Ua�Ua�Ua�fa�fa�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�fa�Ua�fa�3Q�fa�3Q�3Q�fa�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�fa�Ua�fa�3Q�3Q�3Q�"A�3Q�Ua�Ua�Ua�Ua�Ua�Ua�fa�fa�fa�fa�fa�3Q�P�P�3`�fa�Ua�Ua�Ua�Ua�Ua�Ua�fa�fa�3Q�fa�fa�P�3Q�"A�3Q�3Q�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�3Q�fa�3Q�"A�3Q�"A�3Q�3Q�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�3Q�3Q�fa�3Q�3Q�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�Uq�Uq�fa�fa�fa�fa�fa�fa�Ua�Ua�Ua�Ua�Ua�Ua�Ua�fa�fq�Uq�fa�fa�fa�fa�fa�fa�fa�Ua�Ua�Ua�Ua�Ua�Ua�fa�fa�fq�fa�fa�fa�fa�fa�3`�P�fa�Ua�Ua�Ua�Ua�Ua�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�Ua�Ua�fa�Ua�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�fa�Ua�Ua�fa�fa�fa�fa�fa�fa�fa�fa�P�fa�fa�3Q�3`�fa�Ua�Ua�fa�fa�fa�3Q�fa�3Q�fa�3Q�3Q�3Q�fa�3`�3`�3Q�Ua�Ua�fa�fa�fa�fa�fa�3Q�fa�fa�fa�fa�fa�fa�fa�Ua�Ua�Ua�fa�fa�fa�fa�fa�fa�fa�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua�Ua���������+��
��������������������������~���������7�������������������������������������������������������������������������������������������������������������������������������UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUޭ�ﯯ����V��������!��������P���'������o�W��x�D-������϶8�	:R�	��R�... Custom 2.4 GHz Mesh Sensor Network - May 2013

As part of my apartment's security system, I wanted to create my own wireless sensor network. The nodes are based around Cypress's CYRF6936 2.4GHz transceiver IC, and use Direct-Sequence Spread Sprectrum (DSSS) modulation and 128-bit AES encryption for security. It uses a completely custom wireless protocol.



serialmp3_1.jpg serialMP3 Module - September 2013

The SerialMP3 module is an embedded MP3 and WAV player designed for robotics, home automation, and other hobbyist projects. Powered by an Atemega328P microcontroller, a VS1003B MP3 decoder and a 1.5W audio amp, the module only requires 5V power and a serial connection. You tell it what file to play over serial, and the module plays the file from an onboard microSD card.


led_panel_ambient.jpg LED_Panel - May 2014

The LED_Panel is PCB with 25 RGB LED's an an ATmega328P microcontroller designed to make cool animations and lighting features for my security system. Using Arduino software, WS2812B RGB LED's, some buttons and a piezo speaker, this board is really fun to play with!



environode.jpg EnviroNode - Temperature, Humidity & Light Sensor - Dec 2013

The EnviroNode is a digital sensor that reads temperature, humidity and light using a 3.3V serial interface. Paired with a wireless sensor, I use several EnviroNodes for my security system.




Wireless / RF

nalig_cyrf6936_dev.jpg Cypress CYRF6936 2.4GHz Transceiver Arduino Shield - August 2012

For a work-related project, I needed to use Cypress's CYRF6936 2.4GHz transceiver IC. I made a quick prototype shield to easily interface with the Arduino, translate signal levels, and give me some buttons and LEDs.



ASCII���������������xV4xV4xV4xV4������0�`���3���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C�A�L�GDFD06Cur.GDFE010180010015040023010905020106010701070611����	�&�������T�U�N�A��������t�������‡�h��*��v���M�����e��|����FLFL�SVN#���������������������������������������������������������������������������������������������������������������������������������W	A	�������������������������E�@����������������������������������������������������0��d���������������������8���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������JKJK��F�
q�����������B����������������������y��������t�������‡�h��*��v���M�����e��|��JKJKaf�qf�af�af�aU�aU�aU�aU�aU�aU�aU�aU�aU�qU�qU�qU�qf�af�qf�af�af�qf�af�af�af�af�af�af�aU�af�aU�qU�qf�qf�qU�qU�qU�qU�aU�aU�aU�aU�aU�aU�qU�qU�af�qU�qU�qf�qf�af�P�`�	�`�	�`�	�af�qf�af�qf�af�qU�aU�qU�qU�qU�qf�af�`�	�P���P�aU�af�af�aU�qf�qU�qU�qU�qU�qU�qU�af�af�`�	�P�`�	�aU�aU�aU�aU�qf�qU�qU�qU�qU�qU�qU�af�P�P�`�	�`�	�aU�aU�aU�aU�af�qU�qU�qU�qU�qU�qU�af�af�af�af�af�aU�aU�aU�aU�qf�qU�qU�qf�qU�qU�qU�qf�qf�af�af�af�af�aU�qU�qU�qf�qf�qf�qf�aU�qU�qU�qf�qf�qU�qf�qf�qf�qU�qU�qf�qf�qf�qU�qf�qU�qU�qU�qU�qU�qU�qU�qU�qf�qf�qf�qf�qf�qf�qf�qf�qU�qU�qU�qU�qU�qU�af�qf�qU�qf�qf�qf�qf�qf�qf�qf�af�qf�qU�qU�qU�qU�qf�qf�qf�qf�qf�qf�qf�qf�qf�qf���	�qf�qU�qU���	�qf�qf�qf�qf�qf�qf�qf�qf�qf�qf�qf���	�qf�qU�qU���	�qf�qf�qf�qf�qf�qf�qf�aU�qf�qf�qf�qf�qU�qU�qU�qU�qf�qf�qf�qf�qf�qf�qf�af�qf���qf�JKJKT�������������������������������������������K`��������k}������t�������������������������������������������������y�
�����"y�
�����"y�
�����"y�
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#�AFAF����#�����������|����E����}]���\���!u(���(�����7��sW7�����F��pF���Z��caZ��P��pR��z�������������������������������������������������������������������������������������������������������������������������������������������AFAF�@�GD0�N�:AFAF����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ް���������

���X
��x�R��)��)��s�s�\&�Ƴ��6n���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ΊFߛW�޼��"�4�... 5.8 GHz Frequency-Hopping Signal Generator - July 2012

For my Microwave Design class, my group had to design a frequency-hopping signal generator in the 5.8 GHz band. Using a PLL, VCO and microcontroller, the signal generator had to be FCC compliant and output at least +7dBm of power.



proxmitter.jpg Reverse Engineering a Doorking Transmitter - February 2012

My friend and I reverse engineered the transmitters to get into our apartment complexes so that we could embed them into our vehicles. The DoorKing transmitters are quite ubiquitous around here, and they are quit simple reproduce.




RFID

HID 125khz Prox Data Formats - March 2009

125 kHz prox cards are widely used with access control systems around the world. The cards contain very little data, only a few dozen bits. However, they have a variety of “formats” which determine what the bits represent. I've documented some of the more common formats here.



pcb_front.jpg AVRFID PCB Implementation - November 2011

Based on on the AVRFID project to create an RFID tag using only an AVR microcontroller and a coil, I modified the source to work with 35-bit formats and updated the parity calculations. I also created a PCB for the surface-mount version of the AVR, which looks cool and works very well.



arduino_wiegand2.jpg Arduino Wiegand Decoder for HID RFID Reader - January 2012

I implemented a quick and easy Wiegand decoder for HID RFID readers. Although I originally figured all this out with the PicWiegand project, implementation with an Arduino makes it more widely accessible for other projects.



pic2.jpg PIC Wiegand Decoder with 125 KHz HID RFID - November 2007

This was one of my first microcontroller projects where I experimented with an 125 khz HID RFID reader and a data format known as Wiegand. This is a common security protocol used because of it's simplicity and ability to run over very long cable lengths. I wanted to understand this protocol and create a device to convert it to standard serial over a COM port or USB so that I could use some RFID readers I had bought on eBay.




Kiosk Systems

kiosk2.jpg Dorm Room Kiosk - October 2007

In my new dorm this year, I live in a 6 person apartment. We all have our own rooms, plus bathrooms and a common area. We all get along great, but sometimes we close our doors, or are on the other side of the apartment (it's pretty big). So I decided we should have some kind of central computer, or kiosk, where we could list our status and where we are, leave messages and announcements for each other, and other cool things like a touch screen.



WiFi / Networking

dsc07734.jpg Dual WiFi Antennas and Networking - August 2010

As I learned more about antennas, I realized how inefficient my original biquad antenna design was. While extremely cheap, I could get some mesh antennas which work a lot better for a little bit more, add another router and build a server to manage the connections. Now I can combine two internet connections into one.


dsc07238.jpg Dish-Mounted Biquad Antenna for WiFi - August 2009

Why pay for broadband internet when superfast campus wi-fi is only a few blocks away? I built a biquad antenna from spare parts and mounted it to a satellite dish to get a solid internet connection from the campus internet, and it worked amazingly well.




Audio Engineering

speakers10.jpg Building Speakers - April 2011

A friend and I build some pretty sweet, two-way, bookshelf speakers with 8“ drivers. We did this after taking an audio engineering class, and we did all the calculations to optimize our enclosure for the drivers and produce a flat frequency response.



Frequency Response of Speakers - May 2011

As I learned more about speaker design, I wanted to compare the speakers that I made to some other speakers. The frequency response is very noticable, so I decided to measure it on several commerical pairs of speakers.




Software

D++ Scripting Language - 1999 to 2006

D++ is a scripting language I created in Microsoft Visual Basic 6.0. I worked on D++ for many years when I was in middle school and high school, and it was a fun way to learn how to program better. D++ had a small community of developers who helped contribute and write D++ scripts.