# Raspberry PI Zero 2W camera

1. Get the imager [https://www.raspberrypi.com/software/](https://www.raspberrypi.com/software/) and write to sdcard, configure the dialogues

[![image.png](https://wiki.sophior.com/uploads/images/gallery/2026-07/scaled-1680-/image.png)](https://wiki.sophior.com/uploads/images/gallery/2026-07/image.png)

2\. Plug in the sdcard, start the raspberry and log in via putty (find IP on router)  
-&gt; an USB port might not be powerful enough for heavy operations, so preerably a power outlet

3\. Update and install workloads

```
sudo apt update
sudo apt full-upgrade -y

sudo apt install -y \
  rpicam-apps \
  python3-picamera2 \
  python3-numpy \
  python3-av \
  ffmpeg \
  samba

sudo reboot
```

Test the camera

```
rpicam-hello --list-cameras
```

Create directories

```
mkdir -p ~/camera ~/videos ~/timelapse
```

Upload scripts (via powershell)

```
scp C:\ZeroCameraBackup\record-motion.py xxx@Zero.local:/home/xxx/camera/
scp C:\ZeroCameraBackup\aim-camera.sh xxx@Zero.local:/home/xxx/camera/
scp C:\ZeroCameraBackup\timelapse-camera.sh xxx@Zero.local:/home/xxx/camera/

```

In putty:

```
chmod +x ~/camera/record-motion.py
chmod +x ~/camera/aim-camera.sh
chmod +x ~/camera/timelapse-camera.sh

```

Create Services

```
sudo nano /etc/systemd/system/motion-camera.service
[Unit]
Description=Motion Detection Camera
After=multi-user.target
Conflicts=aim-camera.service timelapse-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/usr/bin/python3 /home/tim/camera/record-motion.py

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=20

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
```

```
sudo nano /etc/systemd/system/aim-camera.service

[Unit]
Description=Camera UDP Aiming Stream
Wants=network-online.target
After=network-online.target
Conflicts=motion-camera.service timelapse-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/home/tim/camera/aim-camera.sh

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=10

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
```

```
sudo nano /etc/systemd/system/timelapse-camera.service

[Unit]
Description=Camera Timelapse
After=multi-user.target
Conflicts=motion-camera.service aim-camera.service

[Service]
Type=exec
User=tim
WorkingDirectory=/home/tim/camera
ExecStart=/home/tim/camera/timelapse-camera.sh

Restart=on-failure
RestartSec=5

KillSignal=SIGINT
TimeoutStopSec=20

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
```

Activate teh services

```
sudo systemctl daemon-reload
```

Set one as starting service

```
sudo systemctl disable --now aim-camera.service
sudo systemctl disable --now timelapse-camera.service

sudo systemctl enable --now motion-camera.service
```

check

```
systemctl status motion-camera.service
```