Step 2: Software and Trigger Button

A Brief Overview
As previously mentioned, this photobooth uses the OSX Photobooth application. The OSX Photobooth application was chosen because it was the most stable software i could find - and it comes with every MAC computer. Like most applications, users can trigger features and functions with mouse clicks and keyboard commands.

Triggering the Photobooth Application
With OSX Photobooth, pressing the Enter Key triggers the program to take a photo. I didn't want to expose my computer to people hammering on the keyboard (espeically if they had been drinking). This is why i decided to use an external button, connected to an arduino microcontroller, to trigger the photobooth application.

This is how it works:

The button is pressed - A Staples Easy button was modified to act as a regular button. It's really durable, so people can beat on it without breaking it.

An Arduino registers the button press - When it registers a button press, it sends a serial command to the computer. In this case, it sends the [enter] serial command.

AAC Keys listens to the serial port for serial commands - AAC keys is a free application which litens for serial commands and emulates mouse and keboard events. You can download it here. In this case, when AAC keys receives the [enter] serial command, it tells the computer (and the photobooth application) that someone has just pressed the enter key on the keyboard.

When the photobooth application registers the enter key being pressed, it takes a photo.

Wiring the circuit - If you do not know how to make a button circuit for an arduino, read this tutorial - http://www.arduino.cc/en/Tutorial/button

e sure to connect the button to pin 10 on your arduino. If you choose to wire your button to a different pin, be sure to change [int buttonPin = 10] in the arduino code to match the pin number you selected.

Writing the code - Here is the code i wrote to send an [enter] serial command to the AAC Keys. If you are not familiar with writing arduino code, use this tutorial here. It's pretty easy once you get the hang of it. http://arduino.cc/en/Guide/HomePage

const int buttonPin = 10; // the number of the pushbutton pin

int buttonState = 0; // variable for reading the pushbutton status

void setup() {

pinMode(buttonPin, INPUT);
Serial.begin(9600); // open the serial port at 9600 bps:

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {
else {
// nothing


Installing AAC keys - As previously mentioned, AAC keys is a free program. "That receives commands through your computer's serial port and translates them into keystrokes and mouse movements, giving you full control of your computer from another device such as an [arduino]". You can download the program here: http://www.oatsoft.org/Software/aac-keys

Using AAC Keys is quite simple. Make sure you have an arduino plugged in via usb, running the code seen above. Open AAC keys application and access the applications preferences. When the dialogue appears, check to see that you have selected the serial port associated with the connected arduino (generally it's selected by default, but it is good practice to check), and that it is running at 9600 bps.

If you've done this, AAC keys should be interpreting the button press from the arduino as an [enter] command on the keyboard. open a text editor and give it a shot. Type a few lines of text and press the button attached to your arduino instead of using the enter key. You can also open photobooth at this time and see that pressing the button triggers the program to take a picture.

This is fantastic! I love that you build a giant camera for the photo booth. Not only is it functional but it looks awesome!
Thanks for the commen!
<p>This is AMAZING! </p><p>I know I'm a bit late but.... would you be able to tell me what the dimensions (approx) for the camera lense were? </p>
<p>Hi,</p><p>I am trying to make this now. Would you mind posting a clearer picture of how you wired up the breadboard (I am having trouble getting the wiring exactly right. i.e. what to connect to ground and what else other than the soldered wired needs to be circuited). Thanks I would really appreciate it!</p>
<p>This is incredible! Did you end up finalizing the code to automatically post to flickr? I hope we can complete this project for our wedding!!</p>
<p>I wonder if this could be simplified slightly by using something like the Teensy:</p><p><a href="https://www.pjrc.com/teensy/" rel="nofollow">https://www.pjrc.com/teensy/</a></p><p>It's an ATMeg32u4 USB emulator. That way, all you'd need to do would be program the Teensy to send the return key's ascii whenever the external button is pressed. I've had a little experience with the Teensy and it's perfectly suited for an applicaiton like this!</p>
<p>Hi Frank, first off: good job on designing a cool photo booth! I wasn't able to find any measurements to make the box, did I miss them or do you have them handy for you to post?</p><p>Thanks!</p>
Wouldn't using a Makey-Makey allow you to scrap the need for AAC &amp; the Arduino? <br> <br>If all you're needing is an Enter button then the Makey-Makey would make the leg work quite a bit less.
Thank you for the idea and inspiration!<br> <br> I just got married and thought this would be a great addition to the reception, and it was, people could not stop taking pictures.&nbsp;<br> <br> My Photo Booth is on the heavier side requiring 2 people to move it. It has 2 monitors; one for viewing the HD webcam feed on the Sparkbooth Software and the other monitor on the other side running Faststone image viewer displaying a constantly updated slideshow of pictures already taken. Everything is being run off my PC laptop and triggered by a button tied to a USB keyboard PCB.<br> <br> I plan on redesigning the box to be much smaller and lighter and have a built in PC so all one should have to do is plug it in and everything starts automatically making it very easy to rent out someday.
I ended up building a photobooth for my wedding after I saw how much they are to rent. &nbsp;I used my Macbook Pro inside and wired 4 computer fans on the sides to keep everything cool. &nbsp;There is ZERO heat inside the box. &nbsp;I used a HD webcam and just recently installed LEDs for lighting for the next wedding it will be at this weekend. &nbsp;I upload all the images after the wedding to a dedicated Flikr account for each wedding and leave business cards with the booth at the event with the web address on it. &nbsp;I used a SteathSwitch II slave switch as the only button the guest can press to take the photo. &nbsp;The application I use is the built in PhotoBooth app. &nbsp;Everything is inside and not&nbsp;accessible&nbsp;to the guests, so I don't need to worry about anything getting broken unless they toss the box off the table or decide to carry it out with them. &nbsp;The box is made of cheap 1/4&quot; wood so it's fairly light and then I just stained it to make it look nicer.<br> <br> It was a big hit at my wedding and I look forward to using it at other people's weddings and events.
hi would be the cost to build a photo booth
I will have to try this out. My sister wants me to do her <a href="http://www.jeffsphotography.com" rel="nofollow">wedding photography in Cincinnati</a> this fall and it would be really fun to do something like this for the wedding.
Anyone else running into problems with serial device options in AAC? It only allows Bluetooth-PDA-Sync. Help?
Very cool idea. I just want to say if you're more interested in simple photos vs. an Adruino project; I've seen this done more simply with an iPad and a music stand.
I am in the process of building my own booth based on yours and just had a quick question -- did you make all of your own decals in photoshop or purchase them somewhere? Your decals look fantastic! Thanks for your time and for sharing your Instructable!
Why did you choose ply wood? Is it light and easy to car? Also, could you tell us how much does it weight when loading it into a car?
I chose plywood because it is more durable than mdf or particle board. As for weight, I'd say the whole thing weighs just under 50lbs. Loading it into a car is not difficult for one person to do.
Oh, ok... 50 lbs or less is reasonable. Sorry for the typo. I wanted to say &quot;light and easy to carry&quot;.<br><br>Would you think this could be built using aluminum or another lightweight material? Or do you have any suggestions?
For an application that doesn't need to be particularly durable, foam-core can work. There are also industrial cardboards that are used in construction that are strong and light. <br> <br>Acrylic is a good option, and it's not expensive. A 48x96 sheet (1/8&quot; clear cast acrylic), cut into more manageable sizes, is less than $100 at the plastics place near our house. Opaque colors aren't much more (like a few dollars or so per sheet). Just watch for sharp edges when transporting this! <br> <br>At the expensive end of the spectrum are composites, such as carbon fiber-resin composites. You can build them yourself (not cheap), or use sheets and have them cut for your use (also not cheap). Marine plywood clad in fiberglass is light and durable, and not as expensive as you might think (Pygmy Boats uses this construction for their nice, light kayaks). <br> <br>It all depends on how much work you want to do, and how much you're willing to spend!
Thanks for the share and Idea! <br>Since I don;t have arduino, I would rather hack an old USB keypad. They are pretty cheap. <br><br>Also there are a couple of cooling fans designed for notebooks and laptop in some computer stores.<br><br>you can replace the lights into colored ones for another special effects.<br><br>My only problem now is how to add a flash into it that sync with shooting... <br><br>
I agree with jiivaneshvar on the keyboard hack. Arduino is kinda overkill if you have a single, simple button embedded in the case. There are lots of tutorials on keyboard hacking in the DIY arcade community, just search for &quot;MAME cabinet keyboard hack&quot;, and I'm sure you'll get something. I imagine this would be cheaper and easier for most, though it would take up a bit more space. <br> <br>That being said, if you ARE familiar with Arduino, the possibilities here are endless. You could use the button to simultaneously trigger a flash, for example.
To further this idea, the Arduino's code could be tweaked over time to get the synchronization right with the lights, but another, simpler method would be to turn the lights on for half a second, and take the photo a quarter second into that. No synchronization needed, and the added benefit of some red eye reduction! <br> <br>Remember, the further you can separate the flash from the camera, the better the lighting will be, and the less red eye problems you'll have. The pre-flash helps, too, by causing the subject's pupils to contract. A bright red LED can have the same effect, as well, with the added benefit of being less painful to look at. <br> <br>If you were to add a mobile photo printer to the device, with a slot, you could send a print command with a second button (after displaying a preview). Have the thing full of photo paper, choose the layout you want (can all be done programmatically using AppleScript, which I'm sure you can run with a command from the Arduino), and print! While this does add some cost to the project, it's another option, and shouldn't be that expensive. It might even still come in under $350, plus the computer you're using. Pick up an old (a couple years old) macbook, and it can stay dedicated to the photo booth! <br> <br>Add some pipe and drape, a backlit green screen (LED lit white panel, with Arduino color sensors to switch to blue if subjects are wearing green), choose a custom background, and go nuts! <br> <br>Now I should probably build something like this, since I've been commenting with a stream of consciousness.
I am having the same issue as pmoore10. I am wondering if maybe I downloaded the wrong version of AAC Keys???? Everything else seems to work. Does anyone have suggestions?
Hi this really good project, I have just started using arduino to interface with programs and was looking at ur code, although it works in the serial monitor I can not seem to get it to work with photoboth. I have downloded AAC keys and have it running I was wandering do I need to use a bluetooth shield with my arduino uno to send the key stroke as the only serial device i can pick in the aac pref is the bluetooth-pda-sync. I hope this makes sense and you can help me out...
I am having the same issue as pmoore10. I am wondering if maybe I downloaded the wrong version of AAC Keys???? Everything else seems to work. Does anyone have suggestions?
great build. good on ya! <br> <br>lights: were they synced with flash or on constantly? <br> <br>button: is the an easy usb button mod that will activate photobooth shot? <br> <br>
Hey Thanks!<br><br>The lights were always on. It really helped with the guests walking around in the dark part of our venu.<br><br>I'm not sure of a usb mod, but i'd be willing to bet you can find one on instructables. I have since gotten rid of the arduino - and taken apart an old keyboard, and modified it so that the easy button triggers the enter key [the key currently reserved in iphoto for taking pictures].
Thanks for this fantastic instructable!<br> <br><br> <br>Inspired by you, we were able to make our own giant camera photo booth for <a href="http://promdemonium.ca" rel="nofollow">PROMdemonium</a> and it was a huge success.<br> <br><br> <br>Ours doesn't look as polished as your version, but we were able to throw it together at the last minute with materials that we had on hand or found in the trash.<br> <br>
Awesome project. My buddy and I are building one for his wedding. <br> <br>We are replacing the Easy button with a &quot;Stick N Click&quot; push button light. The button is very simple to modify. I replaced the constant button inside the light with a momentary button and put a piece of velum over the light to diffuse it. It now acts an indicator when someone presses the button.
This instructable is soooo good.. But i had a slight modification that people maybe interested in. When my easy button was pressed down the Serial.println would print a new line every time the loop iterated. In my case, I only wanted to add one [enter] (or in my case, the letter 'g' to appear) instead of 100's. I modified the code to allow for a previous state variable that will only execute the Serial command once for the duration of a button press<br> <br> const int buttonPin = 10;<br> <br> // Variables that will change<br> int buttonState = 0;<br> int previousState = 0;<br> <br> void setup() {<br> &nbsp; &nbsp; &nbsp;// Initialize the button pin as an input<br> &nbsp; &nbsp; &nbsp;pinMode(buttonPin, INPUT);<br> &nbsp; &nbsp; &nbsp;Serial.begin(9600);<br> }<br> <br> void loop() {<br> &nbsp; &nbsp; &nbsp;// read the state of the pushbutton variable<br> &nbsp; &nbsp; &nbsp;buttonState = digitalRead(buttonPin);<br> <br> &nbsp; &nbsp; &nbsp;// If the button is being pressed<br> &nbsp; &nbsp; &nbsp;if(buttonState == HIGH) {<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // If the button is being held down then the previous state<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // will be checked and only if the previous state was LOW would it<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // display the character<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!previousState) {<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Serial.print('g');<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br> &nbsp; &nbsp; &nbsp;}<br> &nbsp; &nbsp; &nbsp;previousState = buttonState;<br> }
This is AMAZING.. !!
I was just about to build this very same thing and then I saw this post! Maybe not a giant camera, but that's still pretty cool. It took me only a few minutes to set this up with a simple button, tomorrow I'll be buying the &quot;Easy Button&quot; and complete the build.<br><br>I love my Arduino.<br><br>Great job!
Thanks! Good luck with the build..
Awesome work!<br>How did the webcam work out with regard to image quality and blur? Interested in this for my wedding, but tried my Logitech webcam last night and the blur was really bad so don't think it would work very well. Also the colors and image quality was pretty terrible. Will the better lighting fix it?<br><br>Going with my SLR involves batteries etc so extra hassle, but might be my only option. Unless there is a webcam out there with significantly better IQ...
The new logitech web cam supports full 1080p resolution, and photobooth for osx was updated to take high res images. I can't remember the exact resolution, but it was large enough that the photos could be printed on 5x7 without any noticeable quality issues. Good luck with the slr!
Cool in the way that it's cool and fun to make photo booths for events like these, but just one question: Why Lomo? The entire point of the Lomography community, as far as I am aware, is to celebrate ANALOG technology. So while Lomo has hipster cred and thus is an obvious choice for this venue, this doesn't seem like an idea Lomographers would actually celebrate (unless you nested an analog camera within the fake camera, which would be pretty cool, though extremely impractical to actually implement).
The form factor of the camera made construction and finishing very simple. I would have gone for a DSLR camera, but the build time would ahve been crazy. Not to mention, the styling of the lomo has a certain novelty factor when it's scaled up to 4 ft wide.<br>
great tutorial..gonna get wed soon....i'm gonna make 1 like these...posting in few months i hope :)
Sweet! Can't wait to see it!
Hi.. Building one now, do you still have the files you printed the decals on?<br>Thank you!
Ohh Yes! I forgot to upload those. There is now and illustrator file on step ten which has all of the decals appropriately scaled to print on a 36&quot; wide plotter.<br><br>Cheers!
Thanks.. One last question.. What was the tripod make or real use for..
The tripod was real. could have made it, but i didn't want my $2,000 computer sitting up on something that wasn't entirely solid with the potential of drunk people all around it.<br><br>here is a link to the tripod site - i borrowed a friends.. and you can also rent them from audio / party stores for pretty cheap. This one can hold 160 lbs.<br><br>http://www.fullcompass.com/product/326884.html?utm_source=googleps&amp;utm_medium=shopping&amp;utm_campaign=googleps&amp;gclid=CJvc5-earawCFYQm3god0XnvHQ
I've been planning something similar for a non-profit event with a EyeFi as CaptPikel (good name) suggested....but never thought of a giant camera. This is Brilliant - much better than a mini booth I was considering. The giant camera advertises the feature. My thought was to have the Easy button on the ground and operate it by foot.<br>If anyone identifies the ideal PC based software, please share.<br>Great Job on the Instructable!<br>
This is a great idea. I may try this sometime. I think I'd use my eye-fi card, dslr and the Canon EOS control software though and just have it upload to the internet as the pictures are taken live (assuming there's internet). But the idea is awesome, stuff like this is always a hit at events.
Good call on the eye-fi card. - please let me know if that works for you, as i might update the design to include that.
This is fantastic!! I've also wanted to create my own photobooth as well. How did you print the photos or share them with your guests?
Good question. <br><br>I didn't set up a printer because I didn't want to manage all of the ink and paper. Lucky for me this worked out in my favor - the guests took over 800 photos, so there would have been a lot of expense and time spent keeping the printer alive.<br><br>Instead, I included some business cards that had a flickr address on them. All of the photos were uploaded to flickr the next day (manually of course). I have been working on a script that would automatically upload the photos to flickr, but i didn't get it done in time for the event.<br><br>If your interested in this, here is a link to a free program that will do the same thing <br>- http://www.technixupdate.com/automatic-background-upload-to-flickr-from-a-folder/<br><br>Hopefully it will save you the time and resources of printing all of the pictures out.<br><br>Good luck!
Thanks for the quick answer! That definitely shares the photos with friends, but I love actually having a physical product in hand when they leave. Hmmm... food for thought!
Way too complicated for me to build :0( But i think it is amazing! Looks very very cool!

About This Instructable


305 favorites


Bio: Im a interaction designer. I work at frog design :)
More by letMeBeFranks: A Makers Wedding - Photo booth
Add instructable to: