About the Blog

Its about anything and everything. I, Steven Hancock started this blog for a variety of reasons. I want to start documenting my life and sharing that with others, whether that's family, friends, strangers or my future self. I also want to start sharing my experiences with others in hopes that others can learn from me. Perhaps I can help someone set up an Ubuntu server, write a Django Web Application, or setup a Phonegap Mobile App.

That's it. I'm hear to share. Nothing more, nothing less. I will be covering a wide variety of topics so feel free to browse for the blog entries that interest you most.

Do It Yourself Photo Booth!

October 27, 2013

Just over a year ago I got engaged in front of the beautiful backdrop of the Rocky Mountains. The following weekend my fiancee and I attended a gorgeous wedding in Spruce Meadows, Calgary. Our creative, idea stealing, juices were flowing. We took note of everything, from the guest book signing table to the sequence of speeches. One of the highlights of the wedding, aside from the people, was a photo booth in the back corner. Well it wasn’t really a “booth” but the idea is the same as a photo booth sans walls. There was a backdrop, a touch screen display facing the participants, a camera, and a printer. People would dress up with various props, get into position, touch the screen, and BAM photo taken. People were then able to press a button on the screen to either “Discard” or “Print”. If they selected “Print”, a minute or two later a photo would be printed out.

The photo booth was a hit. Kids, aunts, uncles, friends, and grandparents all took their turns. Everyone got at least one photo taken. People loved it and the picture that people could take home with them was a great keepsake. My fiancee and I still have ours hanging in our house.

On the drive home from the wedding, my future wife and I discussed how cool the photo booth was. I started to think that it really couldn’t be that hard to make one yourself. I shared my opinion out loud… with that I was committed to creating one for our own wedding.

Getting Started

We all live busy lives. It’s hard to start preparing for something that is only going to be used once and that one use being over 12 months away. So it took me awhile to even start on planning the photo booth.

At first I thought it would be cool to build from scratch using the Nikon SDK. I had to jump through some hoops to download the SDK (email, confirmation, etc) and once I had it downloaded I had to figure out how to use the stupid thing. The SDK is written in C. I won’t claim that I’m overly proficient in C but I can get through it. Unfortunately there was an extreme lack of documentation. After mucking around for a while I decided to scrap the idea of using the SDK.

I searched around the internet for new solutions. I came across a few different programs that allowed users to control a Nikon camera from a computer. Nikon even offers one called Camera Control Pro. I tried some out, but none of them did anything quite like I wanted. However I did find one program that provided hope. One was open source! Yes! I can manipulate the program to perform exactly how I want!


A Romanian programmer and a Danish web designer/semi-pro photographer are behind digiCamControl. I won’t complain too much about the existing code other than to say that the code lacked consistency, comments, documentation, issue tracking, and public roadmap (I really am greatful for the software I swear!). So trying to navigate and manipulate the code was a little difficult, especially since the software was written in C#. I had to learn a new language that I had never used before as well as a new development environment (Visual Studio). Luckily for me C# is similar to many other object oriented languages so picking it up wasn’t too hard. I would say that learning the Visual Studio environment provided a greater hurdle than learning the language.

Once I was comfortable with C# and Visual Studio I started to tackle the code. With the lack of documentation and comments I had to get used to debugging and setting up break points. I didn’t need to do a lot in order to modify the application for use as a photo booth, DigiCamControl already had much of the ability that I needed, specifically a live view feature. The original design looked like this:

What I had to do was enable a full screen version of the live view and add some functionality to take pictures on click, review the photo taken, and print or discard that photo. Once I started to understand the digiCamControl architecture and some of the basic objects things started to come together quickly.

I added a fullscreen button.

I added the ability activate a countdown to take a picture by simply clicking on the screen.

Reviewing the previously taken photo and adding buttons to print or discard the image was a little tricky as I had to deal with things like camera being busy, automatic image saving, image resizing and image printing but nothing that took longer than a day or two.

I added a few error messages, did some testing and I was done!

Final Costs

In all I estimate that I spent around 55 hours on the project.

  • 10 hours of research (Googling, trying different possible solutions, experimenting with the Nikon SDK)
  • 10 hours of learning the environment (C# and Visual Studio)
  • 20 hours for programming (learning the existing code and actually writing code).
  • 5 hours of researching and buying various materials for the physical setup (wireless trackpad, lights, backdrop, printer, etc)
  • 5 hours of building the photobooth (backdrop, DIY softboxes)
  • 5 hours of testing (software and physical setup)

The time spent was spread out over months, so it’s not like I took a week off of work, or spent a couple weeks getting no sleep. I don’t think there was ever a day when I spent more than 6 hours on the project.

I spent about $400 on materials such as lighting (5 x 500 W halogen work lights), wireless mouse (Logitech Trackpad), printer, photo paper, and printer ink. This might seem like a lot, but everything I bought I will be using again in other situations (other than the consumables).

The Wedding

The wedding was a great success! Everything went perfect that day. The ceremony, the reception, everything was great. The photo booth was a great hit. Over 200 pictures were taken! It took a little more assistance than I had originally intended (who knew that drunk people would have difficulty following instructions?) but my brothers and family friends stepped in to make sure everything went smoothly.