This project was inspired by one of my favorite web cam services www.katkam.ca. The setup is proprietary and the software is not available anymore so I though I would develop something using "off-the-shelf" elements. The idea was that maybe someday someone would be interested in following in my foot steps and setting up their own WebCam based on my solution. Here are the components that I've used:

  • Digital Canon Camera
  • Modified Canon firmware CHDK
  • Simple Intervalerometer Script
  • Eye-Fi SD Card
  • Weatherproof Camera Enclosure
  • DotNetNuke Content Management System



 Digital Canon Camera

Cannon Powershot A550The essential element of this project is a Canon Digital Camera. It needs to be a Canon, unless your camera has a built in feature that will allow you to take pictures at a preset interval. I don know that many cameras on the market actually have this built in, perhaps some of the hi-end cameras do. For my project I used a Canon Powershot A550. Its several years old buy still very good for what I needed. It only has a 4x optical zoom and since I am far away from the object I am taking pictures off, it would be nice if I could get my hands on a camera with about 10x optical zoom - Canon SX1 IS or SX2 IS would be nice.

One other feature that your camera should have and that is the ability to run on an external power supply and be able to run continuously. I have disabled the LCD screen though.


 Modified Canon firmware CHDK

CHDK LogoHere is the "Why" use Canon. There is a community of Canon enthusiast that developed a modified firmware that works with many Canon Digital cameras. The project is called Canon Hack Development Kit, or CHDK for short. There are many features of this firmware on of which is scripting. You can write your own script that will perform any function the camera supports and more. You can read all about it here - CHDK.


 Simple Intervalerometer Script

The CHDV firmware has a basic scripting language. There are many scripts already written and a free to download and use. I've taken the liberty to modify one for my own purposes. Its very simple. All it does is take a picture every 10 minutes using the automatic camera setting. The script will use the cameras clock and only take pictures between 5:30am and 8:30pm - nothing interesting happens at night and its too dark to see anything interesting anyway. Here is the source if anyone is interested:

rem Author - Keoeeit
rem Upgraded by Mika Tanninen
rem Time accuracy and shutdown for a710is by Viktoras Stanaitis
rem h-accuracy for delay, j-accuracy for interval
rem setting,start and end time added by Peter Chodyra


@title Dusk to Dawn Intervalometer
@param c Number of Shots (0 inf)
@default c 0
@param d Interval (Minutes)
@default d 10
@param e Interval (Seconds)
@default e 0
@param f Flash Setting(0 Auto,1-On,2-Off)
@default f 2
@param x Start Hr (0-24)
@default x 6
@param a Start Min (0-60)
@default a 00
@param y End Hr (0-24)
@default y 18
@param b End Min (0-60)
@default b 30
rem Turn RAW mode OFF
set_raw 0
rem Set optical zoom at maximum
set_zoom 7
rem Set the flash
click "right"
sleep 400


if c<1 then let c=0
if t<100 then let t=100

rem Begin and finish times as seconds past midnight:

print "Start time =", p/3600;":";(p/60)%60
print "End time =", q/3600;":";(q/60)%60

rem Start in 2 sec give tim to stop the script
sleep 2000

rem Test to see if we are ignoring start and end time
if (x<0 and y<0) then goto "takepicture"

sleep t
if (get_day_seconds>p and get_day_seconds

 Eye-Fi SD Card

Eye-Fi SD CardOne of my challenges was that I wanted the camera to be mounted outside on my balcony where connecting it to a computer is difficult. I needed the camera to send the photos to my server wirelessly. This is where the Eye-Fi card came in very handy. I am using the Eye-Fi Connect x2 4Gb SD card. Its the least expensive of the cards available. The card comes with software and an SD to USB adapter. Its very easy to setup and connect to your wireless network. The nice feature of this card is that it can send your images directly to an FTP server and that it has an endless-memory mode, i.e. it automatically erases older photos from the card when it gets full.

The camera is mounted approx. 10 m away from the router and does not seem to be having any connection issues.


 Weatherproof Camera Enclosure

In order to secure the camera outside from the elements of nature, I constructed a box made from 8mm perspex. I have never worked with perspex before but thought that it would be the best material for the job. I measured out the sides for a cube 30cm side and had it cut at a local Perspex supplier. I used a few screws to secure a small camera tripod inside. Made a hinge for the door and a fixture to secure it to the ceiling. The perspex cube is secure enough and stable enough for the photos you see on the site. It is mounted away from the edge of the balcony so that it is not in the direct sunlight or rain.


 DotNetNuke Content Management System

DotNetNukeI suppose you could use any web server and web based software for this but I am most comfortable with DotNetNuke and decided to use it as the platform. I built my own modules that will display the latest picture and allow you to browse through the Archive of older pictures. There is also a scheduled process on the server that does some simple file processing on the images that have been uploaded to the FTP server. Basically it renames the files based on the date collected from the photos exif data and updates the database. This process runs every 5 minutes.