Skip to content

Qt Photobooth application for Raspberry Pi, Linux and macOS (GitLab mirror)

License

Notifications You must be signed in to change notification settings

tomikais/fotobox

Repository files navigation

FotoBox for Raspberry Pi, Linux and macOS Travis CI:build status GitLab pipeline status Slack:FotoBox

FotoBox is a free open source multi platform application, that offers you the possibility to operate a photo booth (photobooth).

features

  • support a variety of different DSLR camera models
  • trigger photos directly or start a countdown by touching, clicking the screen, using soft-/hardware buttons, pressing keyboard shortcuts or using a presenter
  • lightning fast and low-memory Linux / macOS customizable application

Raspberry Pi OS Bullseye installation

Download latest FotoBox version according to your operating system. Extract all files and execute sudo ./install_dependencies.sh in a terminal to install all needed dependencies automatically or follow these manual steps:

  1. update your operating system: sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
  2. install gPhoto2 when you are using a DSLR camera
    • beginners: use latest available gphoto2 provided from operating system: sudo apt-get install gphoto2
    • advanced (latest version): use gPhoto2 and libgphoto2 compiler and installer script to get latest version and make sure the default installed has been removed: sudo apt-get purge gphoto2 libgphoto2-6

optional steps

  • Raspberry Pi: Setting up your Raspberry Pi Model >=2 with latest Raspberry Pi OS version (Bullseye). If you are using the official Camera Module V2 follow the official activate Raspberry Pi Camera tutorial.
  • Disable the screen saver: sudo apt-get install xscreensaver, run xhost +localhost from a local terminal session (not SSH) and reboot the system. After reboot you can launch the 'Screensaver' application and select 'disable screen saver' from the drop down.
  • Autostart: open autostart file with sudo nano /etc/xdg/lxsession/LXDE-pi/autostart add this line @/home/pi/Downloads/FotoBox (adjust path if necessary) at the end of the file.
  • Using a buzzer: It's possible to connect a hardware buzzer to the Raspberry Pi General Purpose Input Outputs (GPIO) pins to trigger the FotoBox. Please install pigpio library: sudo apt-get install pigpio
    FotoBox needs to connect to the pigpio deamon. To enable deamon on boot (autostart): sudo systemctl enable pigpiod && sudo systemctl start pigpiod
    You can set your pin in the FotoBox application. Please note the GPIO pin mapping.

macOS installation

  1. follow the short instruction to install Homebrew - The missing package manager for macOS
  2. use Homebrew to install gphoto2. Paste that in a macOS Terminal prompt: brew install gphoto2
  3. download latest FotoBox version

keyboard shortcuts

key action
N, Enter, Page Up/Down, Arrow Keys, Space, Backspace start FotoBox
P, S, E preference dialog
Shift + Escape, Q quit application

Frequently Asked Questions

Q: I have misconfigured FotoBox and now it isn't working properly anymore?
A: Start FotoBox application and press "Restore Defaults" button to load the default settings.

Q: Is my DSLR camera supported by FotoBox?
A: Visit website libgphoto2 supported cameras to check if your camera model is listed and supports Image Capture. Use gPhoto2 and libgphoto2 compiler and installer script to get latest version and make sure the OS default one has been removed: sudo apt-get purge gphoto2 libgphoto2-6

Q: Can I use the FotoBox on Linux without X Window System (e.g. using Linux framebuffer on Raspberry Pi OS Lite)?
A: Yes, that is possible because of Qt for Embedded Linux. For Example to use Linux framebuffer execute ./FotoBox -platform linuxfb:fb=/dev/fb0 or set environment variable QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

Q: It shows me the following error message qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. (Qt 6 issue)
A: Please install the following packages by executing sudo apt-get install libxcb-xinerama0 libgl1-mesa-dev libvulkan-dev libxcb-xinput-dev libxcb-xinerama0-dev

Q: My DSLR camera model is supported by libgphoto2 but don't work with FotoBox. How can I fix it?
A: Test if gphoto2 has access to your camera. Execute this command gphoto2 --capture-image-and-download in terminal to test it. If the error message 'gphoto2 could not claim the usb device' appears, try this fix:

  1. get the C code here
  2. save it to a file named usbreset.c
  3. execute cc usbreset.c -o usbreset to compile it
  4. execute lsusb to get the Bus/Device ID of your camera, i.e. 'Bus 001 Device 008'
  5. execute sudo ./usbreset /dev/bus/usb/001/008 each time before running FotoBox

Q: Where can I report FotoBox software bugs or suggest new features?
A: GitLab issue tracker

Q: Where can I get FotoBox support?
A: German Raspberry Pi Forum or official Raspberry Pi Forum (english)


development Doxygen:documentation

Follow the normal installation instructions and additionally install the development tools according to your operating system. Paste the commands in a terminal prompt.

Linux (Debian, Ubuntu)

  • install Linux development tools: sudo apt-get install build-essential ccache pigpio
  • install Qt development tools: sudo apt-get install qtbase5-dev qtcreator
  • install git with tools: sudo apt-get install git git-doc git-gui gitk
  • optional tools: sudo apt-get install cmake doxygen doxygen-doc doxygen-gui graphviz

macOS

  • install macOS development tools: xcode-select --install
  • install Qt development tools: brew install qt && brew link --force qt && brew cask install qt-creator
  • optional tools: brew install cmake && brew install doxygen

get source code

GitLab source code: git clone [email protected]:tomikais/fotobox.git or https://gitlab.com/tomikais/fotobox.git