Sunday, December 15, 2013

Operation: Green Lantern - Final Design Report

Well, here it is. This is what I've been slaving over all semester. It is a reading lamp intended for use in developing nations, and uses a bicycle to power a rechargeable battery. If nothing shows up in the above frame, click here.

Friday, December 13, 2013

Saturday, December 7, 2013

Drum Machine schematic as implemented in VHDL code

This project has been unbelievably enjoyable to implement. Our team consists of three members, so we evenly portioned up the lower-level components (mux, register, etc.) from the schematic diagram. I specified the components' inputs, outputs, and behavior in order to ensure each component was both modular and reusable. The components were then assembled into functional blocks, and blocks at this level of hierarchy were assembled to create the final design.

Wednesday, November 20, 2013

Drum Sequencer for Digital Logic Design Class

I this afternoon I put together the high-level design for a drum sequencer that our group will implement on a Xilinx FPGA using VHDL code.
Block diagram view.
Schematic view.
List of modules we will need to implement in VHDL.

Wednesday, November 13, 2013

LED matrix with custom animation library

I kind of got a bee in my bonnet that drove me to build this. Lots of soldering; coded from the ground up. I will add a little bit of the code here in the near future, as I am particularly pleased with the cleverness of the "Rain" algorithm (which is like some sort of recursive state machine I ended up coding).

Saturday, September 14, 2013

Visual color timer project: I built this for my son so that he knows how much time he has left for watching shows, until bedtime, etc. It can be set from 1 to 120 minutes, and will fade smoothly through the color spectrum from violet to red. Near the end of the red interval, it begins to pulse. It can also be paused, and it will "breathe" (like a sleeping Apple computer) to let you know it is paused. There is also an LED display on top that will tell you how many minutes remain (or seconds, if less than a minute) if you hold the "set" button while it is counting down.

Monday, September 9, 2013

Senior Engineering Design Project

I am taking a class called "Engineering Design Project (EN485)." It has been said that 90% of all engineering focuses on only 10% of the population, solving such "first world problems" as how to extend wireless range all the way to the bathroom so you can use your iPad whilst seated on the throne. The aim of this class is to focus on the other 90% of the world, designing technologies that could benefit people in developing nations.
untitled, Dominican Republic, 2009

Our class has 15 people in it and has been split up into three groups, each working on a separate project. One group is going to design a cook stove that does not lower indoor air quality. This is important because currently, solid-fuel cook stoves cause 2 to 4 million deaths each year.

The second group is designing a small, wind-powered electric generator that can produce 100 to 1,000 watts of power.

My group is designing a device that can harvest either thermal or mechanical energy from everyday recreational activities, converting it to electricity which can be used to power a reading lamp. Like the cook stove, this project will also mitigate the health hazards of indoor combustion, as most of the world uses candles or kerosene lanterns for reading light. An efficient reading lamp could help prevent similar health risks and would also promote literacy by making it possible for people in predominantly agricultural societies to read and study after the day's work is done and the sun has set. I am excited to see what sorts of ideas our group comes up with and how we finally end up tackling this challenge.

Thursday, September 5, 2013

Custom MIDI controller I designed and built for fun:
I am not a piano player, so I liked the idea of an MPC-style button grid. I figured this would also help me to think more in abstract patterns rather than keeping me confined to the C-major/A-minor scale. I only wanted six faders, as I cannot keep track of more than that at a time when recording automation of synthesizer or drum machine parameters.

16-button grid;  far left column sets the velocity, the bottom row sets the octave. The buttons to the right of the grid control the transport (play, record, stop, loop, etc.) and the jog wheel in the upper right is a rotary encoder, which allows me to scrub through a track several bars at a time.

GUTS!!! ATMega328, several 74HC955 74HC595 serial-to-parallel shift registers to control the LED matrix, a 74HC195 to decode the button matrix, and assorted logic chips to debounce and decode the quadrature signal from the rotary encoder.


The enclosure was a wooden box from a thrift shop. I cut it off at an angle with my Dremel tool, then traced out a hole on the top in which to fit a handheld "Lights Out" game. I set the upper half of the game enclosure into the panel and drew a bead around it with JB Cold Weld, sanding it smooth when it was dry. Many coats of red enamel were added to the panel, and the sides were stained with acrylic paints and sealed with polyurethane varnish (sanded between coats, of course).

High-altitude ballooning and natural radio events

One of the projects for my Electricity and Magnetism class last fall was to conduct original research using a high-altitude weather balloon. The goal of our group was to record the sound of distant lightning strikes (called atmospherics or 'spherics) and other naturally occurring very-low-frequency (VLF) radio events. See also http://en.wikipedia.org/wiki/Radio_atmospheric

I constructed the receiver, right, and assembled the pod, above. Our balloon made it to about 30,000 feet, about a third of what we had hoped for. We suspect that the strength of our balloon was compromised due to its coming into contact with skin oils during the launch. Although nitrile gloves are worn by the launch crew as a precaution, it was extremely windy and the balloon was bonking everybody's heads.

Still, our experiment pod was a success and we recorded about an hour's worth of 'spherics. I processed all our data using Native Instruments' Reaktor, a graphical programming language normally used to design software synthesizers. I was able to abuse bend the software to my will in order to filter out unwanted noise and to measure the amount and strength of 'spheric activity in one-minute intervals. More detail on our experiment can be viewed at the Whitworth Near Space Wiki.

New Blog

Yesterday marked the first day of the school year for me. It is the last year of my undergraduate studies, and I decided to start a new blog to document some of my projects and adventures (past, present, and future).