Welcome to my project blog! Below are links, pictures and descriptions of things that I've built in a roughly reverse chronological order. Enjoy!
Cheap Home Automation 2016-2017
This is an ongoing project. I have a number of off the shelf, remote controlled outlets which are very convenient for adding a switch to any outlet.
I have more then one pack of them, meaning I need multiple remotes to control them all. I decided to build a device that could not only
control them all from my smartphone, but also have them all on individual timers.
I was originally going to just hack the remote and use a microcontroller to simulate button presses, but I wanted something that involved a bit more learning.
I decided to try my hand at building a sort of universal remote that could copy the RF signal itself and use a transmitter module to control the switches.
I soldered some wires to the receiver in one of the switches and was able to read the binary command sent by the remote using an arduino and a nifty library called RC-Switch.
Next I bought some 433MHz receiver/transmitters and a bluetooth tranceiver and (after many lines of code) viola, I now have an ATMega328 controlling the 6 remote
outlets I use around my house. I also added a number of fancy features to this device. I can turn each switch on or off individualy or all together, and each outlet
can be programmed to turn on or off independantly up to three times each day. The device is controlled/programmed over a command line interface via a smartphone app. It has a learning mode, so new outlets
(or anything else controlled over 433MHz RF) can be added by recording the device's signal.
The switches can also be given unique names to keep track of what they control. Additionally, I added an external EEPROM chip to store the set timers and RF codes so that this
information is not lost in the event of a power outage (when the volitile program memory resets). That part may sound pretty basic, but it was probably the most challenging aspect of this project!
All in all, my plants are much happier now, with a steady light cycle, and I am much happier
being able to program all my timers in one place, and being able to program them for different times each day so I can sleep in peacefully on the weekends (something the cheap
mechanical timers don't allow).
These things already exist of course; outlets that can be controlled and even programmed with a smartphone over bluetooth or Wifi. However, the cheapest I have seen one of these is around 20 dollars a piece.
The remote outlets I am using can cost as little as 5 dollars a peice when bought in a pack, and my circuit costs somewhere around 15 dollars to make. So you can see, as soon as you need more
than one of these programmable outlets, my device becomes the cheaper option.
I still have some work to do though. Part of this project was aimed at trying to develop a commercially viable product by minimizing cost and component count. I also designed a PCB
so I can make these more easily and reliably. Next, I would like to 3d print a decent enclosure, and create a custom app to inteface with the device rather than simply using a serial terminal app.
Maybe when it's all said and done I can launch a kickstarter! Stay tuned.
This was a quick and dirty project I threw together for a demonstration. It is a theremin like instrument that uses photocells to modulate pitch and volume instead of resonant circuits. While I did come up with this idea on my own, it is certainly not unique. A quick google sarch returns plenty of results for similar projects. However, the other builds I have seen only use one (or more) photocell to modulate only the pitch. A true theremin modulates both pitch and volume. I decided to share this project because the way I accomplish the volume modulation is somewhat clever.
The circuit is very simple. I have two photocell/resistor voltage dividers feeding into two analog pins, and a piezo on a digital pin (it doesn't need to be a pwm eneabled pin). The cleverness is in the code, where I bit bang PWM the on-portion of the square (sound) wave to control the volume. This means that I use software to toggle the pin sufficiently faster than a human can hear, adjusting the on to off ratio, for a duration that is half the sound wavelength, then it just sits off for the second half period of the wavelength (and polls the ADC/performs the required calculations). One photocell controls the duty cycle of the bit-banged pwm, the other controls the period of the wavelength. I also reduced the microcontroller's prescaler and used some lower level commands to speed up the routine.
It's a stupid little thing but it's defiantly more fun than it should be.
Coding is a good winter hobby in Wisconsin. I decided to start learning web development so I could build this portfolio site.
I really like developing interactive visuals and generative art, and this website has become a great outlet for that. Be sure to click around!
Alien Abduction Haunted House - 2014
My friend and I used to throw a mean halloween party. We would go all out with the decorations, making our house haunted. This was, in my opinion, the best of the exhibits (though we had some close runner-ups over the years).
The alien was built with chickenwire and expanding foam. The breathing abdomen of the mannequin was built with a pump underneathe the table in a bucket of water that turned on and off every few seconds, filling a bag and then allowing it to drain back trough the pump. This was controlled with the same controls as my rooftop greenhouse (see other project).
The moving camera thing was made from an old digital camera. I just took it apart and soldered into the motor that controlled the lense. This was also controlled by the same controller. Then I glued a bunch of other pointless circuit boards/components to it to make it look more intense. It also had a blinking light (which can't be seen in the video).
I also went as far as to write an excel macro to generate the alien-looking graphical display on the computer (the blue part, the otherside is the Milkdrop music visualizer). Even the music and sounds in the background were homemade!
Heated jacket - 2014
As an Arizonan, moving to Wisconsin in the winter was terrifying. While shopping for coats
at a thrift store, I found a peculiar jacket with wires sticking out. I googled the brand and realized
it had built in heating coils! While this jacket is intended for motorcyclists, and to be powered from the motorcycle battery, I decided
to build a battery pack and a controller I could keep in a backpack.
The power controller I built using a 555 timer and a MOSFET to implement a simple PWM with a low frequency. A heater does fine at low frequencies, averaging out the heat generated with each pulse.
Having a low frequency means less switching time on the MOSFET which allows for higher efficiency and less heat generated in the transistor.
My controller also has an on/off switch and a potentiometer to control the PWM duty cycle, and thus the temperature. I also incorporated an indicator light on the sleeve which turns on when
the battery voltage dropps below about 11 volts using a simple zener diode circuit. I used lead acid batteries for the supply, because it is the only battery I have that can supply the current needed.
This is stupidly heavy though, and annoying to walk around with. I would like build a lithium ion supply using 18650 batteries at some point, which should be much lighter.
Sensor hacks for Grecycle - 2014
While working at a biodiesel company called Grecycle, I designed several clever sensors. The first was a hack to read a mechanical flowmeter with a PLC.
Accurate, chemical resistant, digital flowmeters can be upwards of several thousands of dollars. What was interesting to me,
though, was that mechanical meters of similar accuracy were much cheaper, several of which we had on hand. These meters have number
dials that totalize flow. By applying alternating segments of black and white paint over the lowest resolution dial, and using a 95 cent
QRD1114 optical detector and a couple of resistors, I was able to send a pulsed output to the PLC as the dial turned. The counting was then implemented with the PLC.
This hack was surprisingly accurate, never missing a count.
I also prototyped an interface sensor using a similar technique. This sensor indicates the transition from glycerin to biodiesel while
being pumped from the reaction tank. I built a small, stand alone sensor that mounted to a sight glass flow indicator. A light shines
through the fluid and is received by a photoresistor. An RGB LED changes from red to green at the change in transmittance. The cutoff level is
adjustable via potentiometer. What is unique about this sensor is my unusual circuit to drive the lights. Instead of ordering the right
components, I wanted to use what I had on hand. This meant driving two colors of a common cathode RGB LED with only two NPN transistors.
This meant I had to use the NPNs as high side drivers, and use one to turn the other off in a sort of flip-flop manner. The whole thing was
powered from a flashlight. This was just a proof of concept, later to be rebuilt to interface with the PLC (and with the proper components).
Student Biodiesel Pilot Plant - 2012-2014
I lead the construction of a Biodiesel Pilot Plant for several years during my undergraduate career. For the first year or so I worked by myself, lead by faculty mentors.
During my senior year I managed a small team of students to help finish it. This involved extensive design, fabrication, plumbing and wiring. I designed, cut and welded
stands, racks, a heating column, a condenser, and a cyclone liquid/air separator. The plumbing involved sourcing and installing valves, gauges, tanks, heaters and electric
and pneumatic pumps for pressurized air, vacuum and hazardous/corrosive liquid applications. I also did almost all of the electrical installation myself, including designing, sourcing and
installing heaters, pumps, power disconnects, sensors and PID controllers. This also included running conduit and wiring single phase and three phase, 110V and 240V lines.
Brew Controller - 2014
A friend of mine started a brewery equipment company for small scale brewers. He hired me to build him a brew controller box. This box
uses off the shelf PID controllers and 240 V contactors to power two seperate heating elements and an impeller. I worked off of his circuit design,
but I had to lay out, drill and assemble the box as well as source most of the components.
Rooftop Greenhouse - 2013
Yet another interesting Arduino project I did for personal enjoyment was the conversion of my rooftop evaporative cooler into an
automated greenhouse. These coolers are common in hot, dry climates and basically consist of a fan pushing air through a wet pad.
Since the cooler isn't used during the winter, and since it has electricity and water lines, it is almost already set up to be a greenhouse!
Additionally, it is located on the roof where it can receive the low winter sunlight.
My roomate and I removed the motor and fan from the swamp cooler and replaced the pads with double walled, clear panels made from wood and shower curtains.
We built a PVC frame with a wire mesh to hold the plants in individual pots above the water basin. The pump was redirected to each plant with vinyl tubing.
I used an Arduino to build a datalogger with three temperature sensors and a relative humidity sensor, allowing me to collect temperature data throughout
the day and night of the internal air, the water and the external air, as well as the humidity.
I then used the Arduino to control a relay box I built to switch on lights, a fan and a custom heater built from an old coffee maker to heat the water through the
night. I used the data to adjust the thresholds of the heater and light control to try to maintain a warm enough temperature throughout the night. The plants were happy!
PCR Thermocycler - 2013
For my senior design project, my team and I built a polymerase chain reaction (PCR) machine for DNA amplification.
Our design used a clever and unique approach which was able to run 30 cycles in about 1/6th the time of conventional machines.
Basically, our machine moved a needle back and forth through an oil bath with a calibrated temperature gradient across its depth.
The needle, controlled by an Arduino, would cycle through the three temperature stages based on feedback from a TMP35
sensor. The actuation was accomplished using a stepper motor, and the housing was created with a 3D printer.
The machine also included buttons for position calibration and a readout on a computer screen indicating temperature, cycle number and needle
position. I was solely responsible for the programming and circuitry of this project, which went on to win one of only three
$750 awards at design day.
Shower water harvester - 2013
This was a school project for a course on microcontrollers. The premise here is to save
cold water that would otherwise go down the drain as I wait for it to heat up before I get in. I used a PIC microcontroller
to measure the temperature via a thermistor attached
firmly to the outside of the pipe. The PIC basically acts as a comparator with programmed hysteresis to switch the solenoid valves directing
the water. The cold water flows through a pipe and out the window to a storage tank which is used for my garden, and when the temperature
is high enough the controller switches the valves to let the water flow to the showerhead. The programming was tediously done in assembly language
to fulfil the class requirements.
Later I rebuilt the circuit with analogue components, using a comparator with added hysteresis. I improved the design in several other ways
as well; using a solderable breadboard, a larger transistor, and battery power with an LED low charge indicator. I also tried to redesign the
housing by replacing one of the two solenoids with a custom "diverter" valve that I built, which would be closed when the other was open and open when the other was closed, like the handle sprayer in a kitchen sink. it... sort of worked...
The crusher - 2013
I bought a couple of 36 inch linear actuators, the kind used for automatic gates, at a yardsale for about 15 bucks each! Logically, my roommate and I decided to build a bulk can crusher. This baby is capable of smashing 40 cans into a block!