Pigeon is a simple 3D printed cloud home surveillance camera project that uses the new Raspberry Pi Zero W
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
CHANGELOG.md improved the module script Sep 7, 2017
modules_enabled.conf fixed bug with path Sep 7, 2017
pigeon.conf debug off Apr 16, 2017
pigeon_install.sh Added sudo modprobe bcm2835-v4l2 to the installation Sep 11, 2017
pigeon_modules_init.sh path issue Sep 7, 2017



License: GPL v3 PayPal Twitter

Pigeon is a simple cloud home surveillance camera project that uses the new Raspberry Pi Zero W single board computer ($10). It uses a custom designed 3D printed enclosure that fits the board and the camera. A wall mount is also included. The software should work with any Raspberry PI version, but the 3D design is made specifically for the PI Zero W platform.

The goal of this project is to provide an easy way to setup a basic (yet functional) hackable cloud camera at the lowest possible cost.


  • Motion detection
  • Integrated with Dropbox for motion detected clips storage (MP4 format)
  • Simple step-by-step installation wizard
  • Live streaming in the desktop/mobile browser with remote access capabilities
  • Authentication for live stream visualization
  • 3D printed enclosure
  • Ability to create several integrations using IFTTT (ex: If Pigeon's dropbox folder changes, send an e-mail, SMS, or slack message including the clip file link).
  • Automatically deletes locally recorded clips after uploading to Dropbox
  • Self-contained modular system for easily creating new modules


  • (optional) 3D Printed enclosure. STL files and instructions available on ThingiVerse.
  • A Rasberry Pi Zero W running Raspbian and connected to the internet. The regular (no-wifi) Raspberry PI Zero also works, but will require a usb wifi doongle that will stay out of the designed enclosure: Buy a Raspberry PI Zero W
  • A Raspberry Pi camera with cable: Buy it
  • (optional) A long micro-usb power cable: Buy it

Getting started

Connect to your Raspberry PI using SSH or using a monitor. Make sure you have the Raspberry PI camera already working, You can test using the following command:

raspistill -o cam.jpg

If camera is not working, make sure it's activated in the setup (option 5):

sudo raspi-config

If you have problems, check: https://www.raspberrypi.org/documentation/configuration/camera.md

Now, clone this repository using git (recommended) in the root of your Raspberry PI home directory:

cd /home/pi
git clone https://github.com/geraldoramos/pigeon.git
cd pigeon

When ready, give execution permission to the setup script and run it:

 chmod +x pigeon_install.sh

The installation should take about 10-15 minutes and inputs from you will be necessary towards the process (ex: Dropbox configuration)

After Installation

After the installation is completed, you will be able to watch the camera live feed by accessing:


If you want to setup remote access, make sure to setup port forwarding in your modem admin panel (port 8099 to your Raspberry IP.)

If everything went fine, you will start seeing MP4 clips being saved on your Dropbox folder when motion events are triggered.

If you want to start at boot, edit the rc.local file as following:

sudo nano /etc/rc.local

Add the following command below the comment, but leave the line exit 0 at the end, then save the file and exit

motion -c /home/pi/pigeon/pigeon.conf

To finalize, make sure you are using the right timezone, so the camera clips date will make sense to you.

sudo raspi-config
Select: Internationalisation Options


If you are getting the "Unable to open video device" grey screen, you can try:

Run the command: sudo modprobe bcm2835-v4l2 More info


Install Motion again directly from the repository:

wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb

Current stage

This project is early stage and I'm looking for contributors. You can edit the pigeon.conf file to change default configurations and make it more suitable for your needs.

Movement detected by the first assembled Pigeon (a squirrel)


This project uses code from the following repositories:


Pigeon is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) version 2 or later

Follow me on Twitter