I’ve previously written up a Do-It-Yourself Photo Booth project I built using a Raspberry Pi, an old LCD monitor, a mirrorless camera and an inexpensive LED Ring Light. I’ve recently updated this project to use the iPhone camera, and wanted to explain how I built it.
Photo Booths can be a fun addition to a party or gathering, but they can be extremely expensive to rent. One place I called was quoting more than $1,000 just for one night! But if you’re handy with Swift and Python, and have an extra monitor lying around, you can build one that has much better resolution and features for less than $150.
Please see the original Photo Booth post for a basic implementation of the Raspberry Pi controller.
Controlling an iPhone Automatically
The big change I made for this iteration was to remove the dependency on a dedicated camera. By substituting in an iPhone, I was able to make the project much more portable and compact, and frankly much better adapted to low-light photography. The latest iPhone and iPad cameras are really terrific, and there’s really little advantage to having a tethered professional camera set up all night, unattended, which might be accidentally knocked over or otherwise damaged.
How to control it?
The Raspberry Pi built into the Photo Booth case can speak Bluetooth and Wifi and even USB.
Rather than futz with Bluetooth, I decided that it was acceptable to assume there will always a wifi signal where the photo booth would be set up. That way, I could establish a simple web server on my iPhone, have it “listen” for the right trigger call from the Raspberry Pi, snap the photo, upload it to a central server, and as a nice backup feature, keep the photo on the Camera Roll for later sharing.
I used the Swift web server library Embassy for the iOS app. My custom Photo app on the iPhone simply spins up an Embassy instance, listens for a simple GET call from the Raspberry Pi, and then calls some AVFoundation code to snap the photo. It then posts the image to the back-end server.
Meanwhile, the RPi server waits about 10 seconds after telling the camera to snap the photo, then it polls the backend API for a new image, and displays it on the monitor.
These changes to the version 1.0 Photo Booth project make it far easier to set up, much more portable, more reliable in low light conditions, and overall just much more “plug and play.”
Steve’s an entrepreneur and software leader. Steve’s worked on consumer apps, online travel, games, relational databases, management consulting and telecom. He launched Alignvote in 2019, which helped Seattle voters find their best-match political candidates by indexing their existing on-the-record stances, matching them with voter’s own answers to those exact same questions. Alignvote also offered politicians the chance to elaborate on those views. Alignvote is on hiatus for now, but might return in a future election.
Politically, Steve is an independent, and has not registered for any political party. He believes in outcome-based transparent governance; he is a moderate who believes that progressive approaches can be great if truly outcome-focused and evidence-driven, but also that unaccountable spending is a recipe for corruption and little progress. He believes that Seattle’s municipal government must work well for all 724,000+ Seattleites.
Steve’s founded multiple companies. In the early 2000’s, he founded BigOven, the first recipe app for iPhone, with more than 15 million downloads, which was purchased in 2018. Steve served as Chairman of Escapia Inc., the leading SaaS solution for the US vacation rental industry, sold to Homeaway, now part of Expedia. In 1997, Steve was cofounder, President, CEO and Chairman of VacationSpot, a pioneer in the online reservation of vacation rentals, bought by Expedia in January 2000. At Expedia, Steve was Vice President of Vacation Packages, leading the vacation package and destination services teams, helping to create two patents on the first-ever dynamic vacation packaging system on the Internet, which now represents billions in annual transactions for Expedia.
He has keynoted on several occasions at the Vacation Rental Managers Association (VRMA), and taught a graduate level course on the strategic management of innovation at the University of Washington Foster Business School in Seattle, Washington.
Steve worked for Microsoft from 1991 to 1997 in a variety of senior marketing and executive positions, and led the creation of the internet games group, helping develop several products and patents related to online multiplayer gaming. He helped launch Microsoft Access and was involved in the acquisition of Fox Software by Microsoft in 1993. He’s worked for IBM, Booz-Allen Hamilton and Bell Communications Research.
He holds an MS in Computer Science from Stanford University in Symbolic and Heuristic Computation (AI), an MBA from Harvard Business School, where he was named a George F. Baker Scholar (awarded to top 5% of graduating class), and a dual BS in Applied Mathematics / Computer Science and Industrial Management from Carnegie Mellon University (CMU) with University Honors. Steve volunteers when time allows with Habitat for Humanity, University District Food Bank, YMCA Seattle, Technology Access Foundation (TAF) and other organizations in Seattle.