# Stopi A python stop-motion script that keeps things simple and allows to use a DSLR or raspicam for capture. * Full screen display of the last picture taken * Optional Onion Skinning with the second to last picture * No gui : everything is done with keyboard keys (or a [homemade rpi pico based remote](/arthus/picote)) and a config file * Auto configuration of the DSLR on startup * Key or event mode ; use your DSLR's trigger button or IR remote and images are automatically downloaded after capture * Preview playback * Full HD export with ffmpeg * Uses translations ## Disclaimer This script was tested with a Nikon D40x DSLR and a rpi 4 B + raspicam module v3. It might not work with other hardware. Issues reports and commits are welcome ! ## Setup 0. (Windows users only) Setup WSL2 on your (P)OS and install a Debian based distro (Debian, Mint, Ubuntu...) 1. Install dependencides : `sudo apt install --no-install-recommends --no-install-suggests git ffmpeg gphoto2 python3-libcamera python3-picamera2 python3-tk` (Optional) If you want a minimal graphical environment : `sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter` 2. Clone the repo : `git clone https://` 3. Change to directory : `cd stopimotion` 4. Create Python venv : `python -m venv ./` (If planning to use a raspicam, you need to also pass the `--system-site-packages` parameter to be able to import the GPIO module.) 5. Install dependencies : `pip install -r requirements.txt` 6. Plug your DSLR/setup your raspicam 7. Set Execution bit on script : `chmod +x stopi.sh` 8. Launch script : `./stopi.sh` ## Todo / Fix me * UI freezes when exporting * Better settings names ; currently they're kinda cryptic and sucky. * Notify ffmpeg export ending ## Planned features * Liveview (when I get a DSLR that supports it :)) * Webcam support (e.g; using pygame) ## Raspberry Pi image For convenience, a disk image will soon be available here for RPI users. ## Kiosk like setup For advanced users, the steps for preparing RaspiOS for a minimal kiosk-like experience are these : 1. Flash Raspi OS bookworm lite version to a SD card, enabling SSH, Wifi, etc if needed. 2. Follow the steps in the 'Setup' section above. 3. Use the 'raspi-config' utility to enable console auto-login. 4. Add this content to '~/.bash_login' : ``` if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then startx fi ``` 5. Add this content to '~/.xinitrc' : ``` #!/bin/sh # /etc/X11/xinit/xinitrc # # global xinitrc file, used by all X sessions started by xinit (startx) # invoke global X session script . /etc/X11/Xsession exec openbox-session ``` 6. Add this content to '~/.config/openbox/autostart.sh' : ``` #!/bin/env bash # Change X keyboard mapping setxkbmap fr # Set background color hsetroot -solid "#8393CC" # Hide mouse after 0.2 seconds unclutter -idle 0.2 & # Start script /home/$USER/stopi.sh & ``` When you reboot, the X session should launch automatically, and then the script.