Softwire Blog


How I made my own photobooth


5 October 2015, by

Photos from the photoboothI was lucky enough to get married last year and decided that my contribution to the wedding planning would be to make a photobooth. This saved on the cost of hiring one and was also a really fun project. Since then the booth has been used at a friend’s wedding and had an outing at the recent Softwire birthday party.

Electronic Components

The main guts of the photo booth are:

  • A laptop, to control it
  • A camera (I used my Canon 450D)
  • A screen to show the images on
  • A printer

Various other bits and pieces were required too:

  • A big push button, to activate it
  • A USB to serial port converter, to attach the button to the laptop
  • A flash for the camera
  • Some lamps, to provide always on lighting
  • A big box full of silly props!

The camera and printer just plug into the laptop by USB. The button was wired over two pins of the serial converter, which then plugs into a USB port. The button presses can then be detected by watching for when the pin goes high.

Photo booth frame construction in progressConstruction

I decided to make an all in one case for all the components based loosely around a combination of various designs I found online. Sadly I didn’t take any photos as I went along, and as you can see from the finished product my carpentry skills are beginner at best! My main regret was going with the curved corners – they were far more trouble than they were worth!

This main box then sits on top of a speaker stand. The whole thing is a little wobbly but not too bad!

For our wedding we just hung sheets from some beams to create a booth around it, but for our annual Softwire birthday party I decided to create a full photobooth experience by constructing one from plastic pipes and covering with sheets.

Software

The camera is controlled using libgphoto2, specifically using a python wrapper called piggyphoto. For the graphical display I used pygame – whilst it is a little out of date now, its fine for something simple like this, and piggyphoto includes examples using it so it was easy to get started.

The most challenging aspect of the software was the interaction with the camera. The protocol is reverse engineered and sometimes unpredictable, and getting reliable results was only achieved with trial and error. If you try to use it with a different camera you’ll probably find it needs its own, slightly different tweaks.

You can get the full code yourself from github: https://github.com/pjrharley/boothy

Results

We had a lot of fun using the booth every time we’ve set it up! The photos have come out brilliantly. The main problem I’ve found is that using an inkjet printer is a bit slow. We also tried a laser printer, but the results were pretty poor quality. Ideally you need a proper dye sublimation printer, but they’re quite pricey.

SoftCon – Softwire’s first in-house conference


26 March 2013, by

Softwire recently held our first in-house software developer conference – “SoftCon”.

The idea of SoftCon was to hold a small conference, with talks on a variety of topics, given by Softwire employees for other employees.

Talks spanned a good variety of topics. Richard opened proceedings with a keynote speech on the inner workings of the classic Playstation game “Micro Machines” (the game is a firm favourite here still, some 16 years after its release!)

Rich talks about Micro Machines

From there we split into two tracks. Rupert told us about how to make use of a graphics cards for massively parallel programming (GPGPU), which was interesting as it’s not something that really comes up in our day jobs!

Other highlights included:

  • Gareth giving a great talk about architecture, and how to design systems that are maintainable and robust – something we already pride ourselves on doing well, but of course there’s always room for improvement.
  • Tim showing us the basics of CouchDB, a NOSQL database.
  • A demonstration of the latest web technologies from Harry, using SignalR and Knockout.js to create a voting application that updates in real-time.

The last session of the day was a discussion panel, hosted by Zoe, with a general topic of quality and testing. We had several of our speakers from earlier join in to give their opinions on the topic which resulted in some lively and interesting discussion points.

Testing panel

We ended, as tradition dictates, with pizza.

Overall it was a great success and we hope to see it come back next year, bigger and better!