An interactive, self-contained Photo Booth for the Arduino® VENTUNO™ Q. The application recognizes hand gestures locally, uses them to select a themed photo frame, captures the result from a USB camera, and sends it to a CUPS-backed print server.
Created and maintained by Ernesto Voltaggio.
Download the complete, ready-to-use package from the pinned release:
The release bundle contains the App Lab import archive, print server, kiosk setup and teardown scripts, kiosk launcher, and 3D-printable VENTUNO Q holder.
- On-device hand gesture recognition using the
arduino:gesture_recognitionBrick. - Portrait web kiosk built with the
arduino:web_uiBrick. - Physical trigger button using an Arduino Nano ESP32 as a USB HID keyboard.
- Asynchronous, request-ID-idempotent printing with explicit success/failure feedback from a host-side CUPS service.
- Automatic login and full-screen Chromium kiosk configuration.
- Reversible kiosk setup that snapshots pre-existing system state, plus a 3D-printable board holder.
photo-booth/: App Lab application source, including the Python backend, web interface, gesture assets, and Nano ESP32 firmware.print-server/: Host-side HTTP service andsystemdunit that submit photos to CUPS.kiosk/: Full-screen kiosk setup, launcher, and teardown scripts.hardware/: STL file for the VENTUNO Q stand holder.scripts/build-release.sh: Rebuilds the App Lab archive and complete release bundle.
- Download and extract
photo-booth-bundle.zipfrom the release above. - Import
photo-booth-app.zipinto Arduino App Lab. - Install the service from
print-server/and confirm that CUPS can see the printer. - Flash the Nano ESP32 firmware included in the application archive.
- Run
sudo bash setup-kiosk.shon the VENTUNO Q and reboot.
Detailed assembly, wiring, deployment, printing, kiosk, and troubleshooting instructions are provided by the accompanying Arduino application note.
Requirements: Bash, zip, and shasum.
./scripts/build-release.sh v1.0.0The generated files are written to dist/ and are intentionally excluded from Git. Because the application note has not been published yet, corrected artifacts continue to use v1.0.0.
The print server listens on all interfaces without authentication and is intended for a trusted local network only. Uploaded photos are stored unencrypted; configure KEEP_UPLOADS according to the installation's retention requirements.
This project is distributed under the GNU General Public License v3.0. Bundled third-party components retain their respective licenses; see THIRD_PARTY_NOTICES.md.
Arduino, VENTUNO, and their logos are trademarks of Arduino SA. The license does not grant rights to use Arduino trademarks or branding.