Skip to content

Commit c7fd7b8

Browse files
committed
update docs/index.md
1 parent 132dcc9 commit c7fd7b8

1 file changed

Lines changed: 160 additions & 17 deletions

File tree

docs/index.md

Lines changed: 160 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,185 @@
11
# Overview
22

3-
This project contains yet another [Photobooth](https://github.com/saeugetier/photobooth). The software is intended to run on a Raspberry Pi 2 and upwards, but it can run on any linux PC. At least a RPi5 is recommended when using the AI background replacement. A preview image is displayed in capture mode. After countdown, a picture is taken and can be discarded or saved. Saved images can be printed immediately or printed collage image with multiple photos. All saved images are shown on front page when the photobox is idle.
3+
This project contains yet another [Photobooth](https://github.com/saeugetier/photobooth). The software is intended to run on a Raspberry Pi 3B and upwards, but it can run on any Linux PC. At least a Raspberry Pi 5 is recommended when using the AI background replacement. A preview image is displayed in capture mode. After countdown, a picture is taken and can be discarded or saved. Saved images can be printed immediately or printed as a collage image with multiple photos. All saved images are shown on the front page when the photobox is idle.
44

5-
Photo capture is currently only supported via V4L2 camera. In prior version of the software DSLR via GPhoto2 was also supported. This feature has now to be backported after changing from Qt5 to Qt6. Supporting Raspberry Pi Cameras via libcamera is a planned feature.
5+
Photo capture is supported via multiple camera backends:
66

7-
The application is distributed via Flathub. But interested people can compile the software by themselves. Steps are documented. The photobooth application used a [Yocto Linux deployment](https://github.com/saeugetier/poky-photobooth/) in the past. This deployment is deprecated now, because the distribution via flatpak is more convinient.
7+
| Backend | Camera Types | Notes |
8+
|---------|-------------|-------|
9+
| **V4L2** | USB Webcams, capture cards | Standard Linux video interface |
10+
| **libcamera** | Raspberry Pi Camera Modules | Pi Camera v1/v2/v3, HQ Camera |
11+
| **GPhoto2** | DSLR, mirrorless cameras | See [supported cameras](http://www.gphoto.org/proj/libgphoto2/support.php) |
12+
13+
The application is distributed via Flathub. But interested people can compile the software by themselves. The photobooth application used a [Yocto Linux deployment](https://github.com/saeugetier/poky-photobooth/) in the past. This deployment is deprecated now, because the distribution via Flatpak is more convenient.
14+
15+
# Installation
16+
17+
## Flathub (Recommended)
18+
19+
The primary distribution method is via Flatpak. Flatpak can be installed on most x86_64 and aarch64 Linux distributions and includes all dependencies.
20+
21+
```bash
22+
# Install from Flathub
23+
flatpak install io.github.saeugetier.photobooth
24+
25+
# Run the application
26+
flatpak run io.github.saeugetier.photobooth
27+
```
28+
29+
Or launch via the desktop application menu.
30+
31+
## Raspberry Pi with libcamera
32+
33+
For Raspberry Pi Camera support, ensure your camera is properly configured:
34+
35+
1. Enable the camera in `/boot/firmware/config.txt`:
36+
```
37+
# For Pi Camera Module 3
38+
dtoverlay=imx708
39+
40+
# For Pi Camera Module 2
41+
dtoverlay=imx219
42+
43+
# For Pi Camera Module 1
44+
dtoverlay=ov5647
45+
```
46+
47+
2. Reboot and verify the camera is detected:
48+
```bash
49+
libcamera-hello --list-cameras
50+
```
51+
52+
3. Install and run the Flatpak as described above.
53+
54+
# Configuration
55+
56+
## Configuration File
57+
58+
The local configuration file is stored in:
59+
```
60+
~/.config/saeugetier/qtbooth.conf
61+
```
62+
63+
The file contains all application settings including:
64+
65+
- Selected camera backend and device
66+
- Neural network runtime settings
67+
- Printer configuration
68+
- PIN code for settings menu (default: `0815`)
69+
70+
## Template Files
71+
72+
The local template files for your collage images are stored in:
73+
```
74+
~/.local/share/saeugetier/qtbooth/
75+
```
76+
77+
It contains:
78+
79+
- Background images for the image collages
80+
- The `Collages.xml` describing all image collages
81+
- Border images
82+
83+
Templates can be imported from USB storage. All files with extensions `xml`, `jpg`, `png`, `svg` in the folder `layout` will be copied to the local template folder.
84+
85+
For instructions on creating custom templates, see the [README](https://github.com/saeugetier/photobooth#how-to-create-own-templates).
86+
87+
# Basic Instructions
888

9-
## Basic Instructions
1089
* Type of collage can be selected in the main menu.
11-
* Settings menu can be opened in the main menu page via gears symbol. Passwors is "0815" if enabled
12-
* During snapshot (after selecting a collage type) a live preview is shown. The shutter button will trigger a count down. AI background removal can be enabled via Snapshot Settings
90+
* Settings menu can be opened in the main menu page via gears symbol. Password is "0815" if enabled.
91+
* During snapshot (after selecting a collage type) a live preview is shown. The shutter button will trigger a countdown. AI background removal can be enabled via Snapshot Settings.
1392
* A preview of the taken photo is displayed after snapshot. The photo can be confirmed or discarded. Effects can be applied to the photo via wizard menu.
1493
* A preview of the collage is displayed as the next step.
15-
* next photo is taken afterwards
16-
* when all photos are taken, the collage can be printed out
94+
* Next photo is taken afterwards.
95+
* When all photos are taken, the collage can be printed out.
1796
* Previous photos and collages can be printed again via the Gallery.
1897

1998
## Video
2099

21-
[![](https://markdown-videos-api.jorgenkh.no/youtube/fB2aQGPT-wg?width=640&height=360)](https://youtu.be/fB2aQGPT-wg)
100+
[![](https://markdown-videos-api.jorgenkh.no/youtube/yZxKuiFJEoE?width=640&height=360)](https://youtu.be/yZxKuiFJEoE)
22101
(Link to Youtube)
23102

24103
# Technology
104+
25105
## Software
26-
Framework: Qt 6.5 or higher - [https://qt.io](https://qt.io)
27106

28-
Background removal neural network execution is handled using either ONNX Runtime or NCNN. Depending on the target hardware architecture, one of these runtime engines may provide better performance.
107+
**Framework:** Qt 6.5 or higher - [https://qt.io](https://qt.io)
108+
109+
**Distribution:** Flatpak (primary), native builds supported
110+
111+
**Neural Network Runtime:** The application supports real-time background removal using neural networks. Available runtimes:
112+
113+
- ONNX: currently only CPU supported. Runs best on X86 CPU with more than 4 threads.
114+
- NCNN: runs best on ARM platform (linited to 4 threads)
29115

30116
## Tested Hardware
31-
Camera: USB Webcam
32117

33-
Printer: Canon Selphy Photo Printer or a generic printer (via CUPS)
118+
**Platforms:**
119+
120+
- PC (x86_64)
121+
- Raspberry Pi 3B, 4, 5 (aarch64). Raspberry Pi 5 for Neural Network recommended.
122+
123+
**Cameras:**
124+
125+
- USB Webcams (V4L2)
126+
- Raspberry Pi Camera Module v1, v2, v3 (libcamera)
127+
- Canon EOS 450D or newer (GPhoto2), Nikon cameras untested.
128+
129+
**Printers:**
130+
131+
- Canon Selphy Photo Printer CP910 over WiFi via [go-selphy-cp](https://github.com/saeugetier/go-selphy-cp)
132+
- Standard inkjet/laser printers via CUPS
133+
134+
**Light/Flash:**
135+
LED flash can be driven via Raspberry Pi GPIO. Tested configuration:
136+
- LED Driver: https://www.aliexpress.com/item/14-37-Inch-LED-LCD-Universal-TV-Backlight-Constant-Current-Board-Driver-Boost-Structure-Step-Up/32834942970.html
137+
- 20W LED: https://www.aliexpress.com/item/1Pcs-High-Power-10W-20W-30W-50W-100W-COB-Integrated-LED-Lamp-Chip-SMD-Bead-DC/32822371892.html
138+
139+
**Display:** A touchscreen connected via HDMI is highly recommended.
140+
141+
**I2C RTC:** If using a Raspberry Pi, it is recommended to use a realtime clock.
142+
143+
**Housing:** Plywood 8mm - Cutting via laser cutter. Template generated with http://festi.info/boxes.py/
144+
145+
My own housing is documented in a separate git repository: https://github.com/saeugetier/photobooth_hardware
34146

35-
LED Driver: https://www.aliexpress.com/item/14-37-Inch-LED-LCD-Universal-TV-Backlight-Constant-Current-Board-Driver-Boost-Structure-Step-Up/32834942970.html
147+
## System Diagram
36148

37-
20W LED: https://www.aliexpress.com/item/1Pcs-High-Power-10W-20W-30W-50W-100W-COB-Integrated-LED-Lamp-Chip-SMD-Bead-DC/32822371892.html
149+
```
150+
.------------. Current .---------.
151+
| LED Driver |-------->| 20W LED |
152+
'------------' '---------'
153+
^
154+
|
155+
ENABLE/PWM| .-----------------------.
156+
| | |
157+
| | Camera |
158+
.------------------. | - USB Webcam (V4L2) |
159+
| Raspi |<------| - Pi Camera | -.-.-,~ .
160+
| Application | | (libcamera) | ) (
161+
| | | - DSLR (GPhoto2) | |_ |
162+
| based on | '-----------------------' /(_)---`\
163+
| QT/Quick | (_ -'
164+
| | .-------------. ] |
165+
| | | Touchscreen | | _,')
166+
| | USB/HDMI | | [_,-'_-'(
167+
| |---------->| | (_).-' \
168+
| | | | / / \
169+
'------------------' | |
170+
| '-------------'
171+
USB |
172+
|
173+
v
174+
Storage
175+
_.-----._
176+
.- -.
177+
|-_ _-|
178+
| ~-----~ |
179+
| |
180+
`._ _.'
181+
"-----"
182+
```
38183

39-
Housing: Plywood 8mm - Cutting via lasercutter. Template generated with http://festi.info/boxes.py/
40184

41-
Canon Selphy CP910 photo printer cpnnected via Wifi
42185

0 commit comments

Comments
 (0)