Projects

Projects

I've always believed that the best way to learn is by doing. I started programming when I was young and got into electronics design shortly afterward. For me, engineering is about combining creativity with know-how to solve problems and projects are a great way to learn. These projects are roughly sorted by how much I care about them (whether I'm working on them and how large they are).

Large Projects

ACRIS

ACRIS

Automatically-Controlled Room Illumination System, a hardware audio visualization project

bt

bt

A probabalistic tempo estimator designed in hardware

bcard

bcard

A cheap PCB business card with some entertaining electronics on it

chanem

chanem

My Master's thesis: a multipurpose channel emulator for airborne network communications

hdctrlr

hdctrlr

A scroll-wheel implemented with a hard drive disk

glowscape

glowscape

A simple audio VU meter using glowsticks

lpctrl

lpctrl

Framework for apps on the Novation Launchpad controller

CEREBRO

CEREBRO

A Brain Activity Visualizer

peq

peq

An FPGA-Based Parametric Equalizer

scln

scln

A tiny onion router for microcontrollers

RGV Portable Lasers

RGV Portable Lasers

An RGV laser set using some nice, shiny hosts

MX Power Blu-Ray Laser

MX Power Blu-Ray Laser

A simple Blu-Ray laser built from a small LED flashlight host

Filedump

Filedump

(PHP) A fast utility for displaying and managing files

Small Stuff

Stuff for Vim

Stuff for Vim

Tools and plugins I've written for Vim

Stuff for Mixxx

Stuff for Mixxx

Controller mappings and scripts for the open-source Mixxx DJ software

Scrolling with a Prox Sensor

Scrolling with a Prox Sensor

Using a proximity sensor and a Stellaris Launchpad to act like a scrollwheel

logcp

logcp

Looks at some number of most-recently-modified files in a source directory and copies them to a destination allowing the user to direct the objects to manually-defined deestination directories as they pass through.

color-control

color-control

Create color palettes with an SVG file and then automatically generate Xresources or TTY configuration lines

ubbcom

ubbcom

A small, cheap breakout board for adding serial communication to a breadboard with the minimal number of pins possible

flacsync

flacsync

Automatic transcoding of FLACs to MP3s preserving as much tag and image information as possible. Also hashes the files it transcoded to prevent needless re-transcoding

knocker

knocker

Fast port knocking client written in Python

irc2sms

irc2sms

Send IRC messages received when away to your phone

Spartan 3-AN Board ADC and Pre-Amp Controller

Spartan 3-AN Board ADC and Pre-Amp Controller

Minimalistic SPI core for setting the gain of an LTC6912-1 amplifier and receiving data from a LTC1407A-1 ADC

Seven-Segment Display Control for FPGAs

Seven-Segment Display Control for FPGAs

Module for controlling seven-segment LED displays with FPGAs

tmux Window Status Patch

tmux Window Status Patch

A patch for tmux that extends the window status bar colors. Now merged into mainline!

Improving Cheap Laser Pointers

Improving Cheap Laser Pointers

A simple method for using lithium batteries to get more stable output from green laser pointers

Scrolling with the Numark TotalControl

Scrolling with the Numark TotalControl

The jog wheels on the Numark TotalControl make for great scroll wheels. This script combines PyGame's MIDI support with PyMouse to do this.

Optical Trapping Example

Optical Trapping Example

Levitating pieces of a marker with a laser!

gvcall

gvcall

Free and easy VoIP calling

icsy - I can't Sleep Yet!

icsy - I can't Sleep Yet!

A simple alarm to help you take naps

Eclipse

Eclipse

A color scheme for KDE4