Sunset & Flower Timelapses

Not the best sunset to do a timelapse of, but it still has some interesting elements. I probably should have used a shorter shutter interval to smooth out the video.


This is a timelapse of some really cool flowers at my parents’ house; they bloom when the sun goes down. I also should have used a faster timing interval here since the flowers actually bloom fairly quickly once they get started. 

Arduino Word Clock

I first saw a clock with this type of design on the Make Blog over a year ago. It is an incredibly clever idea, but the $1000 price tag is a bit much for my taste. I had seen a few attempts at a DIY version but most of them were still too complex or expensive to build. Needless to say when I saw this Instuctable I got really excited. It is based off of another Instructable, however, it simplifies the design and construction to the point where I felt confident that I could build it.

I followed the Instructable pretty closely, with the following exceptions:

LEDS:  I got my LEDs from Evil Mad Science, which sells packs of superbright 5mm LEDs in various colors. This project requires a pack of 100 white LEDs. For current limiting resistors I used 470 Ohm instead of 1K Ohm. This allowed me more flexibility since I can dim the LEDs as much as I want, but I can never make them brighter. The LEDs I used are very efficient and only draw 4.8mA with a 470 Ohm resistor, so the maximum power draw for the clock will be about 150mA. Consequently power usage is not an issue since I used a repurposed cell phone charger as the power supply and it can provide 700mA at 5V.

Letter Mask:  I had to use 4 transparencies stacked in order to get the mask dark enough. I also used a wider border for the letter mask to cover up some imperfections around the edges of my transparencies. For LED diffusion I used some translucent plastic folders that I found at an office supply store. I got a multicolor pack so that I could try different configurations and decided that a combination of one gray and one white folder cut to fit in the frame was the best looking and most functional choice.

LED Holder:  Instead of a cardboard LED holder I used foam poster board. This is a much stiffer material and makes the holder much sturdier, however, it is also thicker so I had to make the light baffles 1″ high rather than 1-1/8″.

Circuit Board:  Since the wiring on this project is fairly complex I decided early on that I wanted to keep the circuit board as simple as possible. In order to accomplish this I used two Radioshack breadboard matching printed circuit boards. These are great boards since they have power buses running down the sides of each board and they have plenty of room for the 7 chips necessary for this project. This made it very straightforward to scratchbuild an Arduino on one of the boards and then wire it to the other chips. Note: when building an Arduino in this way you need an FTDI cable which plugs into the 6-Pin header on the board in order to program the Arduino.

I mounted the boards side-by-side on a piece of acrylic to make it easier to work with. I also wired the board such that I could add a photoresistor in the future to allow for dynamic LED dimming (its wiring is bundled separately for later use as shown in the photos). Instead of wiring headers I just wired directly from the circuit board to the LEDs using multicolor wire to differentiate which word group I was wiring to (you can see each ULN2003A’s bundle grouped together in the photos).

The size of these boards prevented me from trying to mount them inside the picture frame, however, mounting the boards on the back wasn’t a problem. As shown in the photos I had use some stacked foam board as spacers between the back of the picture frame and the wall to keep the board from rubbing agains the wall. I also changed the power socket mounting from the back of the frame to the bottom by cutting a notch in the wood and gluing it in place.

Conclusion:  The biggest problem I had with this project was dealing with a slightly imprecise LED layout. This resulted in some of light baffles partially blocking the wrong letters. After removing the problem baffles, however, I found that my diffusion layers worked well at making up for any discrepancies due to LED placement as well as reducing cross-letter light bleed to an acceptable level. As far as the code goes the only changes I made were done to make use of external pull-down resistors instead of internal and to clean up the code a little bit since some of the comments no longer made sense. I really like this project. It is not only cool looking, but it is useful as well.

Night Sky Timelapse

I wanted to try this type of timelapse video since I first built my Arduino Intervalometer. Luckily the weather was clear enough that I had a good opportunity for night photography. I set my camera to take 30 second exposures at F8 and set the intervalometer to trigger it once a minute for 2 hours.

Using Adobe Premiere Elements, I set the frame length to 1/24 of a second. This resulted in a nice smooth video of the northern sky rotating around the north star. Note: the video looks much better in full screen HD.


Peggy 2 LED Matrix

The Peggy 2 is a 25×25 LED matrix kit from Evil Mad Scientist Labs. Ever since I first saw the Peggy kit I thought it was one of the cooler kits available. I finally got around to getting one of these awesome kits and it is a sight to behold. By far the largest kit I have ever built, it is also the best quality kit I have come across. The Peggy 2’s circuit board is probably twice the thickness of a normal printed circuit board, a welcome feature for such a large board since the added thickness makes the board very rigid. You can purchase the Peggy 2 in a variety of kit configurations; I got the so called awesomeness bundle which includes a power supply, extra pushbuttons, and 640 diffused 10mm LEDs in the color of your choosing (white in my case).

The build itself took around 2 hours to assemble the control circuitry and another 4.5 hours to solder all of the LEDs. It’s a bit of an undertaking, but when you’re done it’s a great feeling when all 625 LEDs light up. To program the Peggy you use the Arduino IDE and download the Peggy Library. I haven’t experimented too much with it yet, but I did try out some of the demo programs from the library and you can see what the Peggy can do in the video below. I look forward to playing with this project a lot in the future.

Timelapse Using Arduino Intervalometer

I finally got around to using my Arduino Intervalometer to make a timelapse video. With a big snowstorm coming I decided to use it to my advantage. I set my camera in Aperture Priority mode at F5 and had the intervalometer trigger it every 5 minutes for 3 hours.

I used Adobe Premiere Elements and went with 1/8 of a second per frame since it makes the video fairly smooth while not blowing through the frames too fast. If I wanted to I could have reduced my timing interval by a third and made a video at the normal 24 frames per second for smoother video.

Hard Drive Speakers

I first saw an article about hard drive speakers some time ago, but never thought about building my own until I saw this interesting project and decided to take a closer look. When I recently came into a pair of old hard drives, it was the perfect time to build my own set.

This is a very easy project to undertake. All that is required is to disassemble the hard drive (you will need some Torx screwdrivers) and solder two wires to the appropriate contacts on the hard drive’s read head. These wires are then attached to the speaker outputs of your amplifier (I used my vacuum tube amplifier to drive the speakers).

After playing with the finished speakers I found that if I restricted the read head’s movement by trapping the speaker wires between the two magnets at the base of the head’s armature (as shown) the speakers would produce much cleaner audio. By restricting the read head’s movement I prevent it from vibrating against the platters which can cause annoying scratching and rattling sounds. The downside of this is that you can no longer see the head’s armature move with the music, which is a pretty cool effect. Regardless of how you construct your own set, hard drive speakers sound best with music that contains a lot of treble. Check out the video below to hear how my speakers sound playing some Bach.

Arduino Intervalometer for Time-lapse Photography

Arduino-Intervalometer3Arduino-Intervalometer2Last fall when I built my first intervalometer and then used it for some time-lapse photography, the limitations of such a design became apparent. With an analog timer the circuit is limited by component values to function in a fixed way. The timing ranges cannot be changed without rebuilding the circuit and there is no way to be truly precise in your timing. A few months ago I came across this design for an Arduino intervalometer which is very basic and requires reprogramming for any timing changes. After some planning I decided to take the best features of my original intervalometer and combine it with an Arduino’s flexibility to make a much more versatile intervalometer.

Key features to keep from the original were:

  • Camera interface isolation
  • Timing range options
  • Battery or AC adapter power options
  • Camera connection flexibility
  • Manual controls

Additional features that I wanted to add were the following:

  • Power supply flexibility
  • LCD readout
  • Start/Stop the timing cycle

Arduino-Intervalometer1Arduino-Intervalometer-SchematicIn order to maintain what worked best in the original design I simply copied it directly over to the new version. I used the same relay isolation for shutter triggering, as well as hard-wired pushbuttons for manual focus and shutter control. I also used the same 3.5mm jack to connect to the camera as the original. For power I decided to use a coaxial power jack as I had previously but this time I did not place a battery inside the enclosure. Instead, I made an adapter cable with an N style coaxial DC power plug on one end and a USB plug on the other end. With this cable I can power my new intervalometer from any 5V USB power source (PCs, wall adapters, MintyBoost, etc). In order to keep this build as simple and inexpensive as possible I decided to use the Arduino Pro and a basic LCD for a total cost of $36. The Arduino Pro is the same as a standard Arduino, except it uses all surface-mount components and has no USB interface. This keeps the cost down and reduces the board size. The LCD was simple to wire requiring only +5V, ground, 6 data lines and a dimmer potentiometer input. The final features were all implemented in the Arduino code.

I ran into a few problems while developing the code for this project:

  • How to adjust the timing interval value
  • How to start & stop the timing cycle
  • How to switch timing ranges

For adjusting the timing interval I had originally planned to use pushbuttons, however, after playing with the idea I decided against it. I found that it was much quicker and more user friendly to use a potentiometer as a virtual selector switch. In order to do this I used the map function, to divide up the potentiometer’s analog input values into the specified number of steps.

Starting and stopping the timing cycle was not as easy as it first appeared because the simplest way to wait a specific amount of time between events is to use the delay function. The problem with this is that while the program is delaying for the set amount of time, no other commands are being run and inputs are not recognized. To get around this I used a technique I found on the Arduino website which blinks an LED without using the delay function. Instead it sets a preset interval and then checks how much time has past using the millis function until enough time has gone by to trigger the desired event. This allows the processor to keep scanning the code while the timing cycle is taking place. Now if I want to cancel the timing cycle I can do so without resetting the Arduino.

To switch timing ranges I used this clever piece of code that allows you to use one button for two functions. When the button is pressed the Arduino keeps track of how long it was pressed. For short presses it performs one function and for longer presses it does another. I used this method to implement both timing range switching as well as toggling between set mode and timing mode as shown in the video below.

After getting all of my code together I assembled my new intervalometer in a 6″X4″X2″ project box from Radioshack. This is somewhat oversized for these purposes, but it’s cheap and readily available. Overall I am very pleased with this project. The responsiveness of the interface is very good and it triggers my camera shutter perfectly. The two timing ranges I preset in the unit are 5-60 seconds in 5 second steps and 30 seconds to 10 minutes in 30 second steps. These should cover the most common intervals I will use, and I can change them at any time if I have to. This is by far the most complicated Arduino coding that I have done and it was a great learning experience. Check out the video below for a demonstration of the device.


Note: the LCD requires the updated LiquidCrystal Library, checkout this tutorial if you are using version 0016 or earlier of the Arduino software.

Arduino Punk Console 8 Step Sequencer

APCAPC-faceThe arduino punk console is a simple tone generator that is capable of making some cool audio sequences. I’ve always enjoyed playing around with different audio equipment (see my analog synthesizer) and this looked like a cool project when I saw it on the Make Blog. It is a fairly straightforward project that uses an arduino to handle all of the switch and potentiometer inputs and generate the tones. What is especially fantastic about this is the flexibility afforded by having a reprogrammable controller instead of a hard-wired sound generator. That said I haven’t modified the original code yet.

APC-insideWhile the original project was good (see also this Instructable), I made the following changes for my version of the arduino punk console:

  1. Eliminate the LCD screen – I wanted to make my version as cheap as possible and I thought the LCD was somewhat unnecessary for a simple project such as this since it doesn’t display very valuable information.
  2. Scratch build the arduino board – Similar to other DIY arduinos (see here & here) I’ve done before based off of the Boarduino design, I had the parts and building it myself cut the cost of the unit.
  3. 9V AC adapter power – I have found it is much more convenient to power many of my projects with an AC adapter instead of batteries as it saves having to access the inside of the unit for battery replacement and the portability provided by battery power is rarely necessary.
  4. Substitute 5K ohm potentiometers – I’m not sure why the original project used 100k ohm potentiometers, but I had a bunch of 5k’s around and they worked fine.
  5. No speaker – I was planning on using an external amplifier so I replaced the speaker with a mono 1/8″ audio jack.
  6. Eliminate the volume control potentiometer – Again, because I am using an external amplifier I don’t need another volume control.

Check out the video below of the sequencer in action:

GPS Receiver v2

GPS_insideGPS_bodyWhen I first built my GPS receiver over a year ago I was fairly pleased with its performance. After using it more, however, it became obvious that I needed to make some improvements. The following were my biggest problems with the device.

  1. Battery life. The 9V battery and 5VDC regulator combination that powered the receiver wasted a lot of energy in the process of reducing the 9V input to the 5V needed to power the receiver. I wanted to find an alternative power source that could use rechargeable batteries with more capacity.
  2. Build quality of the receiver’s enclosure. I found that the enclosure I had been using was too large to conveniently fit in a backpack with other gear. I also wanted to rewire the device to better utilize wire management techniques inside the enclosure.
  3. Power & Backlight Controls. In my first attempt I used slide switches which, while functional, looked terrible. In my revised build I used push-on-push-off switches. This was an improvement, but they were still poorly placed and could turn on accidentally when pressed against other objects in a pack.

Battery Life

GPS_lidThe solution I found for this problem is actually a project that I’ve built before called the MintyBoost. This ingenious device takes a 2-3V input from 2 AA batteries and boosts it to 5V. While originally intended to charge USB devices such as cell phones or mp3 players, the MintyBoost works perfectly with my GPS receiver and offers a big improvement in convenience and performance. I can now use rechargeable NiMH AA batteries which provide 2000mAh of power, constituting over 300% more capacity than a typical alkaline 9V battery. This should translate into over 12 hours of battery life.

GPSWhile I would normally build a simple circuit like this from scratch, I decided to get MintyBoost kit for this build. Aside from the obvious convenience factor, it also packs the circuit into a much smaller package than I could accomplish on a proto-board. The only changes I made to the kit were that I did not install the female USB connector and its associated pull-up/down resistors since I connected my power wires directly to the board itself.

Build Quality

GPS_topI looked around for a new enclosure with a AA battery compartment, but I couldn’t find one that was the right size, so I decided to use a generic 6x4x2 project box from Radioshack and modify it for my purposes. While somewhat thicker, it is otherwise much smaller and fits better in the hand than my previous enclosure.

Because I need to access the inside of the case every time the batteries have to be changed, I wanted to be able to take the cover off without having to use tools. As with all Radioshack project boxes the cover is normally held on with 4 countersunk Phillips head screws. To allow for hand access, I drilled and tapped the screw holes in the body of the box to accept 6-32 cap screws. These machine screws have a knurled head instead of a screwdriver slot, allowing you to grip the head of the screw with your fingers. This makes removing the cover by hand a breeze.

In addition to modifying the case I also rewired all of the connections from the LCD and GPS module to the main board. This means I now have only 4 wires going from the main board to the lid, allowing me to bundle the wires and secure them with wire ties to the lid and body. Another change I made was mounting the two circuit boards and battery holder to the enclosure with double sided foam tape instead of stand-offs and bolts.

Power & Backlight Controls

To resolve my complaints about the receiver’s controls I decided to change both the placement and type of the switches I used. Instead of the face of the receiver, I moved the controls to the top of the unit. The main idea behind this is that it streamlines the profile of the receiver so that there are no protrusions when it is placed vertically in a backpack, making it less likely that the unit will be turned on accidentally. For the power switch I used a large rocker switch with a fairly stiff action. This switch is both functionally and aesthetically superior to my previous choice. For the backlight control I stuck with a pushbutton, but this time I went with a small momentary version. This was done because I rarely use the backlight and by requiring the user to hold down the button they are more likely to use it sparingly, thereby conserving the battery.

I am very pleased with this latest revision of my GPS receiver. It has always been a fun project and now it is even more capable and robust. Check out the video below for a walk-through and a demonstration of the unit.

First Timelapse Attempt

Here’s my first attempt at making a timelapse video using my Analog Intervalometer. The video was made with Adobe Premiere Elements, which is much better at making timelapse videos than Picasa since the user has greater flexibility regarding the resolution and compression of the finished video.


One mistake I made, as you no doubt noticed in my time-lapse video above, was setting the camera to shutter priority mode. This resulted in considerable depth-of-field shift as the camera changed the aperture when the light dimmed from day into night, placing much of the scene out of focus.