Supporting a Canon S110/S400 Digital Elph Cameras under Debian Linux
(with a review of the camera and sample photos)

(S110 Back View) (Tux) (S110 Front View)
(S400)

Shortly before the birth of our second child (Dec 2001), I broke down and bought a Canon PowerShot S110 Digital Elph digital camera. Since we run strictly Debian GNU/Linux at home, the included software was useless. The Linux project for supporting digital cameras (at least those with a USB interface) is gPhoto. gPhoto 2 is a set of libraries with a command line interface to download photos from a USB-connected digital camera. There are GUIs for it; read the gPhoto web site for details.

My machine is a dual-P3 box running the 2.4.21 Linux kernel and the unstable Debian distribution (if you're not living on the edge, you're taking up too much space). The Tyan Tiger 230 motherboard has two on-board USB ports. The first step is to enable USB support in your kernel. It has a top-level kernel config menu listing, so it's easy to find. See the Linux Kernel HOWTO if you need help here.

The second step is to get all the necessary packages installed. The biggest reason I like Debian is its apt-get utility for managing package dependencies. Simply grab the following packages: hotplug, usbutils, and usbview. As of this writing (21 Dec 2001), even Debian's unstable dist used too-old versions of gphoto2 and libusb, so I had to download the source and build them myself (at least that appeared to be the case for me).

Jason Baietto's message on the gPhoto message board was a great help in the rest of this. Another useful site for debugging USB was the Linux USB site.

You really ought to setup hotplug support so you don't have to worry about permission problems. If you choose not to do this for some reason, you'll have permission problems in the /proc/bus/usb/001/005 directory when you try to access the camera as a non-root user. It works fine from a root shell, though. The dirty fix is to do this:

% strace gphoto2 --port usb: --camera "Canon PowerShot S110" --list-files |& grep Permission
open("/proc/bus/usb/001/006", O_RDWR)   = -1 EACCES (Permission denied)
% su
# chmod a+w /proc/bus/usb/001/006
# logout
% gphoto2 --port usb: --camera "Canon PowerShot S110" --list-files
Status: Initializing 'Canon PowerShot S110'...
Status: Listing files in '/'...
Status: Detected a Digital IXUS series / IXY DIGITAL / Powershot S100 series
Files in /:
Status: Getting info for 'IMG_0033.JPG' in folder '/'...
#1     IMG_0033.JPG                image/jpeg
Status: Getting info for 'IMG_0034.JPG' in folder '/'...
#2     IMG_0034.JPG                image/jpeg

After battling several GUI's, I finally installed gtkam. It required some code hacking to get it to work with the 2.0beta3 version of the gphoto2 libs, I'm afraid, but at least it works now -- as root. It's simple, but functional. I couldn't even get GnoCam to build.

Some other good writeups of this (including hotplug configuration) are at:

Review and Sample Photos

Here are my initial impressions after running 200 or shots through the camera. I love the size. I love being able to drop the camera into my shirt pocket and carry it around at a family outing, always at the ready. The 8MB factory card is a bit small for lengthy outings using the medium size & quality, but it's fine for smaller images or around-the-house usage. I got a 16MB card thanks to Canon's rebate, and picked up a 256MB card about 6 months later. The big card will hold over 800 images at medium res, which would drain 6-8 batteries (125 shots per battery if you use the flash about half the time). This card should last me a while.

My big complaint is its low-light sensitivity, which is primarily due to its tiny flash. It works fine for close range, but it starts to fade out at around 8-10 feet, and anything beyond 12 feet is dreadfully dark. I notice this more during the winter (it's now January), when most of my photo ops are inside my dimly-lit house. If you're looking for a do-it-all camera, you should really pick one with a larger flash. I'm also not wild about the red eye effects that it gives, even with the anit-red-eye flash setting. I suspect this is due to the flash being located so close to the lense. But hey, it's a digital camera, right? That's what photoshop is for!

I'm also undecided on whether the small size is uncomfortable for my medium-sized hands. I suppose it's not bad enough to make me dislike it. Any discomfort is certainly offset by the convenience of such a small package. Since I already have a nice SLR (Canon EOS Rebel G) and merely needed a convenient, point & shoot camera to assist with my web page & catching the kids in cute poses, this fits the bill for me.

The video capture is something I'll use only occasionally. It should never be considered a substitute for a real video camera, just as the digital still feature of most miniDV camcorders is no substitute for a dedicated digital still camera. However, it is nice for having the kids say hi to grandma in an email.

Here's a few example photos to show what the Canon S110 can and can't do.

Here's a demo of the zoom capability. 1x, on the left, is zoomed out all the way. 2x, in the middle, is the maximum optical zoom. 5x, on the right, is the max total zoom (2x optical times 2.5x digital). While the degraded sharpness of the digital zoom isn't as obvious in the 640x480 images below, it becomes more apparent at full resolution (65 KB).

1x 2x 5x

Below are examples of the middle image above (2x optical zoom) in all of the available image sizes and qualities.

  1600x1200 1024x768 640x480
Super-Fine 1116 KB 481 KB 203 KB
Fine 693 KB 297 KB 132 KB
Normal 324 KB 150 KB 70 KB

Here are demos of the video capture capability. Video is captured at approx 20 frames per second and stored in AVI format. Only the optical zoom can be used when recording video, and once you start recording, the zoom level cannot be changed. The maximum length of a single recording is independent of the amount of RAM you've got -- a larger CompactFlash card just means you can shoot more individual videos, not longer ones. The maximum times will vary depending on the compression rate obtained on the video.

Size Approx
Max Length
Sample Still Sample Video
160x120 30 secs 4 KB 3.2 secs, 64 frames, 407 KB (127 KB/sec)
320x240 10 secs 12 KB 3.75 secs, 75 frames, 1152 KB (307 KB/sec)
640x480 4 secs 40 KB 3.5 secs, 70 frames, 3223 KB (920 KB/sec)

Untimely Demise

This camera worked great for us for nearly two years. In that time, we took 7,804 photos with it (nearly 11 shots per day -- hey, they're free). Most were of our kids, my 4-wheeling adventures, and my Jeep modifications. It saw a hard life, spending many a day in my front jeans pocket while I wrenched on the Jeeps. After being handled frequently by hands soaked with various solvents, almost all of the decals on the camera had disappeared. On 30 Nov 2003, something suddenly went screwy with the lense motor. The lense got stuck in the extended position, and refused to move either to focus the lense or to retract when powered off. It started throwing error code "E18" on the display, and Canon recommended that I send it to their service center in Illinois for a repair estimate, which I did just prior to writing this. They estimated 7-10 days before I got an estimate for repair, and three weeks before I got the camera back (if I chose to have it repaired). The repair bill would have been $155 (including return shipping). Since an equivalent camera can be bought new for $250 (with a new warranty) and we kinda wanted something with better picture quality, we opted not to bother repairing that old camera.

Three weeks is a long time to be without a pocket camera during the holidays and while I was in the middle of a big Jeep upgrade, so we broke down and bought a new Canon S400 digital camera instead. It's basically the 4.0 megapixel version of my old S110. It's got some nice new features, including a much better flash, much sharper and faster focusing, and better low-light sensitivity. I bought one locally at Circuit City as a trial run until Canon got back to me with a repair estimate, then returned it within the 15 day window and bought one to keep from BestPriceAudioVideo.Com that included a 5-year warranty for just $450. BPAV had one of the best prices I could find, and they came highly recommended by users of Shopping.Com. They were also close to me (Ohio), which meant I could pay for UPS ground shipping and still get my package 2 days after they shipped it.

BTW, the S400 shows up under gphoto2 as a "Canon Digital IXUS 400," but otherwise works identically to the old S110. For my own records, I started shooting with the "loaner" S400 on 2 Dec 2003 and with the "keeper" S400 on 22 Dec 2003.

I later found out by reading the message board at http://www.greenspun.com/com/imaging/PRODS/S100/S100A.HTM that the E18 error is quite common, and generally results from dirt, sand, or lint getting into the lense mechanism and fouling things up. Canon blames this on improper care, but that doesn't always seem to be the case. Some people have experienced this within the first few days of owning their camera (even while taking extreme care with them), while others (like myself) have used their cameras hard for years before encountering the error. Canon sometimes does not even cover this problem under warranty, and repair costs seem to be in the $150-250 range worldwide. If you want to completely dismantle your camera and clean it to fix the problem yourself, visit http://www.ixus-world.de/index.htm?tips/repair_guide/e18_01en.htm for excellent, detailed instructions. Most of the IXUS-World site is in German, unfortunately, but the E18 repair instructions are in English. I've decided to have Canon return my camera without repairing it so I can give this method a shot. I wish I'd heard about this before I bought my S400 -- or maybe I don't, since the S400 is much nicer.


last updated 15 Jan 2004
Obi-Wan (obiwan@jedi.com)




Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting