Photo booth

I've been thinking of making another attempt at building a photo booth for DNA Lounge.

I last tried this back in 2007, and gave up, because back then, no cheap video cameras were good enough in low light, and getting a Mac to remotely control a DSLR and then get images out of it was basically impossible.

But hey, eight years later! And the world has changed so much that there are not only a ton of people out there selling photo booths, but there are a ton of people selling just the software to turn a DSLR, a printer and a tent into a photo booth. With anim-GIFs.

The world has changed so much that there is a Photo Booth Expo. Yes, there really is a convention for everything.

So, Lazyweb, what do you know about this stuff?

Have you used photo booth software? Have you maintained a photo booth and seen what happens upon contact with the enemy?

Which software, cameras and printers are any good? I guess I want:

  • Mac-based, not Windows;
  • Live video preview;
  • The preview works well enough in low light that the booth doesn't have to leak light all over the nightclub (a flash is ok, but a constant-on 100 watt bulb is not);
  • Auto-upload all photos to our own web site;
  • A photo printer that can stand up to an extraordinary amount of abuse;
  • Ability to take cash or credit cards to pay for the prints;
  • Is not going to require an operator to fuss with it multiple times a night.

There are lots of companies out there who will happily put a photo booth inside your business, charge for the photos, and keep all of the money, but if I've learned anything from owning my own ATMs and owning my own ticketing service, it is this: "never, ever do that."

The turnkey photo booths you can buy seem to go for $8,000 to $15,000, which seems crazy for a fabric tent that has at best $1,600 worth of hardware and off-the-shelf software in it. But, maybe answering the questions I asked above is harder than I think it is.

(If you are about to suggest running Apple's "Photo Booth" application then you are missing the point about how combat-hardened this solution needs to be. In fact if you're about to begin a sentence with "Why don't you just...", please don't, that means you haven't thought it through and you're not helping.)

Tags: , , , ,

31 Responses:

  1. duck says:

    In terms of software, may be gross overkill for your needs, but the pro version does at least have the features - talks to SLRs, live view, unattended mode by design. however, how actually battle hardened it is, i'm not so sure about. They have a trial though.

    • jwz says:

      dslrBooth actually looks pretty reasonable, and nicely customizable -- but I have not yet found any indication that this software is aware of the concept of "paper doesn't come out until money goes in". So that may make it a non-starter.

    • jwz says:

      Yup, I wrote the dslrBooth folks and their software does not have support for payments of any kind. Prints can only be free.

  2. Erbo says:

    I looked at this question and thought, "This would be exactly the kind of thing I'd use a Raspberry Pi to make." A search for "Raspberry Pi photo booth" on Google yielded several results, the most promising of which may be here. Admittedly, this doesn't check off all of your feature boxes, but it might be a good starting point for developing a solution that fits your needs. And it certainly won't be Windows-based.

    If it were me, I'd try and see if I could rig the photo printer so that, when the finished photos came out, they went down a chute to where they were delivered to the customer, so that your photo printer is never actually exposed to the customer at all. I'd also mount the camera and preview screen behind a Plexiglass panel that would protect the expensive electronics, and be easily replaced if when it gets vandalized. The Pi-based solution certainly has its advantages, like not needing a physical hard disk.

    Of course, given your attitude towards Linux-based solutions, you may not really like this. But I thought I'd mention the possibility.

    • jwz says:

      You know, when someone says they're using a Raspberry Pi for something, I'm pretty much always baffled by why they would choose to hobble themselves in that way right out of the gate.

      I'm sure there are plenty of projects where that's the right solution -- like if hard requirements include "tiny" or "outside in the rain" or "deploying 500 of them at once" -- but that's not most projects.

      You can try to cram your project into a Linux PC with specs from fifteen years ago; or you can spend $300 more and get a two-year-old Mac Mini instead. It is false economy to say "I'm going to save $300 by adding a new constraint to this project: forcing myself to implement it using a toy instead of a real computer."

      Retrocomputing is fun and all, the demoscene still exists, but come on.

      • Erbo says:

        It's a fair point; from one point of view, it's the classic engineering tradeoff of time vs. money, isn't it? Of course, I could advance a couple of other points.

        First, how much CPU power is a photo booth going to need? Taking pictures, displaying them, sending them to a central server, and printing them are all pretty much I/O-bound problems. And, if a standard Pi Model B doesn't have enough power, the newer Pi 2 just might, for the same price. (Or you could spend a little more, but not as much as that Mac Mini, and use a BeagleBone Black.)

        Second, if that Mac Mini has a physical spinning-metal hard disk, that's a potential failure point. An application like this isn't going to require a lot of local storage (as I presume it would erase photos taken soon after they're passed to the central server and/or printed), and there'd be plenty of space on the SD card filesystem to handle it. Yes, SD cards can wear out, too, but they're also cheaper, and easier to keep backups and swap out if needed. (Using an SSD in that Mac Mini would negate this objection, but also would add expense to the project. Again, time vs. money.)

        Aside from that, a Mac Mini-based solution would probably look a lot like the Pi-based solution. They might even use some of the same software, like Gphoto2 to control the camera. So that project might still act as a jumping-off point to designing a solution on your favorite platform.

        • nooj says:

          Oh my god. You're also not answering the original question. You have clearly never made and deployed a photo booth. Stop talking.

          • Mark says:

            Dude, just turn on the 'herp derp' flag --- same result.

            • nooj says:

              I do love that flag. The source code for it is hilarious too!

              var derp = cherp();
              if (derp) herpa (derp);

              function herpclerk(e) {
              function herpies() {

      • Nate says:

        Raspberry Pi = the awesome usability of Linux plus the massive computing power of a Pentium 3.

        As you point out, most one-off uses don't require something so small. And if you need something so small, you usually need it to be realtime or low power (e.g., microcontroller). If you need mass production, you're doing a custom board.

        In the middle is its true market of "hobbyist too lazy to program bare hardware." That certainly isn't anything to sneeze at, but it's almost always better to use a full-size computer or bite the bullet and learn how to program without a kernel in the way.

  3. I love photobooths, especially the original ones with the stinky chemicals that make you wait three minutes. Not sure I see the appeal of a modern one, when everyone has a selfie machine in their pocket. Do people really want the paper print?

  4. Oh God, the things that will happen in that booth...

    • Tom Lord says:

      Note the requirement: " Auto-upload all photos to our own web site; "

      So the uncensored feed ...

    • nooj says:

      Yeah, a friend of mine runs one (not a rugged one). The booth spits out four little images, but the camera takes a one minute video, with audio! It seems so private in there when the curtain is closed. People must assume the only copy of those photos gets printed out, into their hot little hands. Oh, but no!

      There are sooo many boobs. The best video was a girl suddenly pulls her shirt up, showing her spectacular boobs, and the surprise of the guy next to her, who then leans over to bite them, and she elbows him in the face for it! Cleaned his clock good!

      We selected four perfect frames for a demo reel, and then deleted it all as usual, because, well, they're just boobs. Also lawsuits.

  5. Egan Hirvela says:

    You make it sound like a bad thing, Emily! :D

  6. It's all in how you read it, Egan! 😉

  7. Geoff Smith says:


  8. Dan Marsh says:

    Actually, a Raspberry Pi 2 wouldn't be a bad choice for this imo if nobody suggests a more turnkey solution.

    -The Pi 2 has more than enough processing power to do both motion analysis on captured frames, create compressed video and jpegs and upload then via SMB to my NAS with CPU overhead to spare. I run a half dozen of them as wireless security cameras for under $100/each for all necessary hardware including the camera. The official camera costs about $25 (there is also a version without an IR filter) and interfaces via a special port that provides for high bandwidth image capture. You could also hook up a HD webcam (I've used Pi's with the Logitech Webcam 9000, which is very high res and has good low light sensitivity) or use a low end DSLR with a fast prime lens for better low light sensitivity. A ton of people are using Pi's for everything from wildlife cameras, DSLR time lapse cameras, etc. so there is tons of example code available. There are lots of ready made Linux packages like Gphoto2 to control and capture photos from a DSLR and then pipe them through to Imagemagick or similar for processing. My guess is you could roll a functional, if basic, photo booth in like 20-30 lines of code. Oh look, someone already has:

    -The Pi and associated equipment is very small, so you wouldn't need a large, expensive enclosure compartment or much ventilation. Much easier to harden something like this.

    -Once you have your software environment set up, it is very easy to make a backup of your SD card should "The Enemy" decide to do the expected and piss through the photo output shoot, pour vodka on it and light it on fire, etc.

    -The Pi and associated hardware is extremely cheap and widely available and they have emphasized backwards compatibility in their releases, so if something breaks in 3-5 years, you could likely find a replacement easily. Then again, they are $35 right now so buy a bunch extra as cold spares.

    -The Pi has lots of IO pins for interfacing to buttons, triggering flashes, hooking up to a bill reader, etc.

    -The Pi has both Analog and HDMI output so displaying a running preview of the image isn't terribly hard. I had my Pi displaying realtime video from my official Pi Camera about 5 minutes after plugging it in.

  9. Dan says:

    I like how combat-hardened this post is!

    I've used a couple of ruggedized printers before but they were only temperature, rain and bump proof not drunk, beer and fail proof. Spill your coffee and it's all over :(

    Whatever you do heavy duty perspex is going to be your friend. A normal printer will be fine if no one can get near it.

  10. Instead of asking for solutions for a night club and hoping people will understand the absolute hellish conditions you will subject "the solution" to, just say you're going to deploy this in a new club you opened just north of Kabul. "Yes, it needs to be sand and snow proof. Don't ask why."

  11. Julian Calaby says:

    For the payment side of things, would it be possible to use a vending machine cash / card (/ coin) acceptor? (See here []) Also, using a vending machine acceptor and having something speak the protocol (IIRC it's standard and they can talk serial) means you can upgrade it in the future as technology changes without (hopefully) having to change your software.

    As for the camera side of things, my only idea won't work as it didn't meet requirement #1: CHDK enhances the PTP mode of supported Canon cameras (most of them) with extra commands that do all of the camera side stuff you want. The problem is that all the software for it is either Windows or Linux (RasPi) based only and nobody seems to be making it work for MacOS, particularly as a library (I'm guessing you want a pre-built front end or to write your own) Link:

    I know nothing of photo printers, let alone ones that would work here. As for the physical construction, you appear to have that handled given your previous post.

    • jwz says:

      I can't find any documentation on how that cash/card box communicates to upstream that money has been deposited. For that matter, dslrBooth does not give any indication of being able to accept payment in any way.

      • Julian Calaby says:

        I thought the protocol was public, but it turns out there are a few different ones, MDB appears to be semi-public or reverse engineered: ccTalk seems to be public beyond that I don't know. I've also seen "CCNET" as an option and can't find anything out about it.

        From what I've seen watching my father build petrol POS software in the 90s and testing the same in the 00s, you have to run a daemon for the card reader on your computer to integrate with your POS software. Vending machine card acceptors are probably a whole different ball game as I'm pretty sure I've seen cards retrofitted onto vending machines that are old enough that they should have rock stupid microcontrollers in them - but I could be wrong. I suspect that they'd be controlled through whatever bus the coin / note acceptors are hooked up to. (particularly as there are integrated note+card acceptors.)

        As for DSLRBooth, it appears they've committed one of the cardnial sins of software development by not allowing any form of extension to their software, and it appears the source code isn't available, so it looks like that's a dead end - unless it can be automated through MacOS's Automator software or something.

      • Julian Calaby says:

        Oh, and the product I linked to was an example, not a suggestion. Sorry about that.

    • pvg says:

      Both Canon and Nikon publish and maintain (closed) control SDKs for OS X. They're kind of a pain to download but probably less of a pain to try than CHDK or gPhoto or whatnot.

      • jwz says:

        I tried to use the Canon API the first time around, and it was a pathetic joke.

        • pvg says:

          I'm sure it still is. dslrBooth uses it, though, so at an unhelpful minimum 'you can make a photo booth out of it', these days, apparently.

        • pvg says:

          Forgot to add, I have an old, unused but supported DSLR Canon body (it seems like you were trying this with a point and shoot?) sitting about. If you care to enter that circle of hell again, I'll happily lend it to you.

  12. flodadolf says:

    The camera side seems easy:

    Low-light HD IP CCTV-type camera with MJPEG support (which is still "almost all of them," AFAICT), if not actual JPEG stills, along with MJPEG Tools and wget (as required). The last photo kiosk I myself used was clearly NTSC-based, and this will be light-years beyond that.

    Printer seems easy, though expensive. When I worked in a photo lab, our public-facing self-service kiosk had a stainless steel, gravity-fed chute. Above that chute was a bog-standard (as far as such things go) 4x6 dye-sub printer. The kiosk provided the security; the printer itself was not hardened at all and simply sat on a shelf. (This seemed to work fine, though resupplying the printer was a semi-skilled PITA that does not want to happen in a dark and noisy nightclub.)

    Alternatively, forget 4x6 and dye sub: Print photo sets on 8.5x11 paper on a cheap color laser with the rear paper path. Cheaper, more reliable, easier to dick with in the dark.

    The hardest part about printing is detecting when it is low (not out) of supplies, and refusing to take money for prints. Otherwise refunds become a real thing, which isn't ever fun.

    Physical interface: $5 keyboard, just like your internet kiosks used to have. Nobody likes entering data on a big touchscreen, and they never work right in public spaces (unless they're the resistive type, and then they barely work ever). Also some arcade switches, because nobody wants to deal with a keyboard once they're got the bill acceptor/swipey-thing to shut up and take their money and some people (still) don't care about email.

    Software interface: A page with a simple form that can be filled out easily with a keyboard alone, that glitzes about when disused (I think you can probably find some screensavers somewhere). Something to listen to a hardware button or two. Something to make a light come on long enough for the camera to adjust its iris and shutter and grab a frame. (MAME builds are full of examples of this sort of I/O, and a [goddamned] Raspberry Pi does this out-of-the-box........)