Vintage Camera Photo Booth for Pi Day
by chloezhang in Circuits > Cameras
344 Views, 4 Favorites, 0 Comments
Vintage Camera Photo Booth for Pi Day
This Pi-Day Photo Booth was made during CMU ACM's Hackberry Pi, which is a week-long Raspberry Pi hack-athon to celebrate all types of pi and pie! However, I had already been turning about a rough idea for this project for a while beforehand when I picked up an antique Kodak No. 1A Folding Camera from eBay.
The No. 1A's are special because they made photography much more accessible to members of the general public because they were more compact than other cameras and packed with various functionalities to make high-quality photos easier to take. This specific camera was likely made between 1929 and 1931. However, it only takes photos on 116 film, which is a type of film that has been discontinued since 1984. I wanted to showcase this beautiful camera, while making it interactive so that people can take a little bit of history with them when they leave (and maybe a pi-day laugh too). This project, then, is a blend of history, technology, and design.
A small digital camera sits right behind the open shutter of the Kodak. When one of the buttons on the box is pressed, the Raspberry Pi wakes up and prints out a photo on sticker paper using a thermal printer. There are two modes: a “Normal” mode and a “Pi” mode. The former takes and prints photos normally, while the “Pi” mode takes the person in the photo and puts them in a pie.
The biggest challenge of this project was that I wanted to maintain the illusion that the original Kodak was taking the photos by itself, so I made sure to keep the project as minimally invasive and non-destructive to the camera as possible. That's why I made sure to design the photo booth for the Kodak, and not the other way around. The electronics are hidden away inside the Kodak and in the stand below it. The wiring is kept as minimal as possible, making use of the defunct autographic slot.
Hope you enjoy this photo booth!
Supplies
SUPPLIES:
- Kodak No. 1A Folding Camera (or any antique camera that supports time mode)
- ⅛” thick tempered hardboard panel 4’x8’
- Raspberry Pi 4
- SD card
- Arducam camera module IMX 470 (link)
- 100 cm long camera cable (link)
- Vretti thermal printer (link)
- Thermal paper (link)
- Red LED x1
- White LED x1
- 1000 ohm resistors x2
- Female to male jumper wires x5 (three will be cut and soldered)
- Superglue
- Epoxy
- Wire
- Solder heat shrink (or electrical tape if you’re in a pinch)
- Hinge x2
- Button x2 (link)
- Paint
- Spray Paint (black, or your choice)
- Gouache paint
- Waterproof varnish
- Patience :)
TOOLS:
- Laser cutter
- Soldering iron, solder
Camera Prep
- If you’re using a No. 1A Pocket Kodak, unscrew the front lens cap. This should be relatively easy.
- The back lens cap can also be unscrewed. Collapse the bellows and open the back panel of the camera. Using a pair of pliers and gentle pressure on the rim (it’s small), remove the back lens.
- Put the camera on “time mode” (T), so that the shutter stays open.
That’s all for now!
Prepare the Base
- Laser cut the parts of the box from the file on the hardboard
- Dry fit the parts before gluing, using masking tape to temporarily hold the panels in place as needed.
- Assemble the base of the box using superglue. It’s easier to do this step with masking tape. Clamp the parts until they dry.
- Paint, if desired - I first spray painted each face of the box with two coats of black, let them dry overnight, and then added details in gouache. The whole box was then coated with waterproof varnish.
- I used a 5-minute epoxy to add the hinges to the box after the paint job. Maybe there’s a better way to do this.
That’s all for now!
Electronics
If you’re using a different Pi model, double check the pins on your board.
- We need the circuitry to share a common ground with the Raspberry Pi. Cut off the female end of a jumper cable (this will go to ground on the pi) and solder it to 4 wires (these will go to the LEDs and buttons). If you have heat shrink, put it onto the wires before soldering them together. Otherwise, wrap the exposed metal with electrical tape.
- There are two buttons: the first controls the “Normal,” standard photo mode, while the second controls the “Pi” mode. For the first button, connect one ground wire to one terminal and connect a male to female jumper from the button to GPIO pin 22 on the Pi. The Pi button should be connected to ground and GPIO pin 23 on the Pi. The Pi will normally pull these voltages high to ~3.3V, until the button is pressed, which will bring the wire to 0V and send the signal.
- There are two LEDs: one white and one red. Solder each LED to a 1000 ohm resistor between the negative cathode and ground. Connect the red LED to GPIO pin 17. Connect the white LED to GPIO pin 27 on the Pi. Use heat shrink or electrical tape to protect any exposed wire.
- Plug in the thermal printer – power to the outlet strip and data USB to the Pi.
- Insert the cable from the Arducam into the CAMERA port of the Pi. Make sure the silver terminals are seated properly. The blue side of the cable should face the USB ports if you’re having trouble.
Software
Check out the PDF at the end of this step for a guide with screenshots of the setup if this is confusing.
- Set up camera
- sudo raspi-config
- Enable I2C
- sudo vim /boot/firmware/config.txt
- Set camera_auto_detect=0
- Add dtoverlay=imx708 below [all]
- Reboot for changes to take effect
- rpicam-still –list-cameras
- mkdir Photos for script later
- Set up printer
- scp printer-driver-sn_3.13.16_deb.deb ____________
- sudo dpkg -i printer-driver-sn_3.13.16_deb.deb
- sudo apt install cups enscript -y
- lsusb (verify printer is seen)
- lpstat -p
- If you only want to set up a basic script with no Pi-day edits that just takes normal photos and prints them out, follow the steps here and skip #4. Otherwise, jump to #4.
- Run ledcam.py with python3.
- If you would like to set up the advanced script with the Pi-day edits, follow these next steps. This script is more complicated since the Pi-mode uses the rembg library to remove the background from the photos we take and then performs image masking to create the person-in-a-pie effect we’re going for. We’re going to create a virtual environment to make this happen.
- Lpstat -p #get name of printer
- lpadmin -d DB402 #set the printer as default
- mkdir pi_booth && cd pi_booth
- sudo apt update && sudo apt install libcap-dev -y
- python3 -m venv --system-site-packages ~/pi_booth/env
- source ~/pi_booth/env/bin/activate
- pip install rembg opencv-python pillow gpiozero
- pip install picamera2
- pip install "rembg[cpu]"
- Whenever the pi_booth environment is activated, you will be able to run ledcam_adv.py.
Try getting a basic version of the booth running before moving on to the subsequent steps. It’s going to be much harder to debug if your electronics are in the box!
Putting It All Together
- You’re going to mount the Arducam inside the Kodak. You could design a mount, but I think the least damaging way to do this is to crumple some newspaper behind the Arducam and have the pressure hold the digital camera in place. Route the cable down to the Pi through the hole in the upper panel.
- Coax all your wires into the box. This is one of the most frustrating parts of this project…
- Load the printer with thermal paper
- Test!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I couldn't have completed this project without the classes I've taken and the support of CMU students and staff, organizations, and makerspaces throughout the process. I borrowed a Raspberry Pi and a camera module from one of the student organizations on campus, and I used the electronics lab kit from my Intro to ECE class to help me with the first proof of concept so that I could validate my initial idea before investing more in it. I borrowed a lot of equipment from the IDEaTe lending library to set up my Raspberry Pi, which helped bring down the cost of this project. TechSpark was where I spent many hours restoring the Kodak, re-designing, and laser cutting prototypes. Hamerschlag was where I could find quiet, open work space to solder the electronics of the project. Not to mention the fact that I only learned CAD in my Intro to MechE class last semester, basic circuits in Intro to ECE this semester, and soldering from my friend a month or so ago. A huge shoutout to all the people and resources at CMU for helping me turn this idea into reality.
Feel free to let me know if you have any questions or comments about this project. I’d be happy to hear any suggestions you may have as well.