s10sh is a command line software utility to download pictures from Canon digital cameras
via a USB or serial cable. It also allows for other direct control of the camera and to explore
the embedded processor.
Story:
The s10sh utility has not been under active, controlled development for some time
now (see History below) so this is an attempt to archive the software in its current
state. It will also allow ongoing development in a controlled manner.
In December 2004 I made some updates to the utility for my own use and distributed
them through the YahooGroups canondigicamhacking and the www.syeager.org 300d
development communities. There, some interest had developed to continue supporting
s10sh. I also attempted to contact both the previous developers (see History below)
but did not receive any responses.
History:
This program was originally written by Salvatore Sanfilippo at:
http://www.kyuzz.org/antirez/s10sh.html
(The page was last updated Sat, Jan 6, 2001, at version 0.2.0.)
Then the Debian maintainer, John Reynolds, made some changes at
http://www.reynoldsnet.org/s10sh/
(The page was last updated Sat, Sep 13, 2003 at version 0.2.2.)
Then Doug Mitton added some new features and cameras and uploaded the package to:
http://www.syeager.org/300d/forum/index.php
http://groups.yahoo.com/group/canondigicamhacking/
(This was last updated Mon, Mar 28, 2005 at version 0.2.2B.)
On Fri, Nov 18, 2005 Doug Mitton created the SourceForge.Net site and uploaded
all the archive source files as well as the most recent update version 0.2.2C.
There is also an MS Windows version (with source code) located at: http://wins10sh.narod.ru/
(The author can be contacted as rayer314 at http://groups.yahoo.com/group/canondigicamhacking/)
On Thu, Aug 24, 2006 Lex Augusteijn (one of the 300D UnDutchable authors) sent me an updated
version which allows camera parameters (such as ISO, shutter speed, etc) to be changed via the
USB port. This is in addition to the existing option totake a picture via the USB port.
These changes were made to assist in this project; Hardware Photos and BLOG.
Thanks Lex; the source package is available via the download link as package s10sh-0.2.3.
Example Output:
<P2>dmitton:~$ s10sh
S10sh — version 0.2.2C Mitton
Copyright (C) 2000-2001 by Salvatore Sanfilippo <antirez@invece.org>
S10sh is FREE SOFTWARE under the terms of the GNU public license
—- CRW_1515.THM 9k Sat Nov 5 15:46:40 2005
—- CRW_1516.CRW 6645k Sat Nov 5 15:46:46 2005
—- CRW_1529.CRW 7530k Wed Nov 16 17:30:24 2005
—- CRW_1529.THM 10k Wed Nov 16 17:30:24 2005
–n- CRW_1530.CRW 6813k Sat Nov 19 22:05:12 2005
–n- CRW_1530.THM 8k Sat Nov 19 22:05:12 2005
–n- CRW_1531.CRW 7359k Sat Nov 19 22:05:32 2005
–n- CRW_1531.THM 10k Sat Nov 19 22:05:32 2005
–n- CRW_1532.CRW 8047k Mon Nov 21 18:27:40 2005
–n- CRW_1532.THM 11k Mon Nov 21 18:27:40 2005
64 files 224343666 bytes
[Canon EOS DIGITAL REBEL] C:\DCIM\115CANON> date
Camera date (xST): Mon Nov 21 18:31:01 2005
[Canon EOS DIGITAL REBEL] C:\DCIM\115CANON>
Command Line Help:
s10sh — Canon Digital Camera Software
Version 0.2.2C Mitton
usage: s10sh -[DaugnlELhctZS] [-d <serialdevice> -i <value> -s <speed>]
-D enable debug mode
-d <serialdevice> set the serial device, default /dev/ttyS0
-a enable A50/Pro70 compatibility mode
-s <serialspeed> set the serial speed (9600 19200 38400 57600 115200)
-u USB mode, now default; use -S for SERIAL
-S SERIAL mode, default is now USB mode
-g non-interactive mode, get all images
-n non-interactive mode, get all new images
-l non-interactive mode, list all images
-E non-interactive mode, delete all images
-L write files using all lower-case characters
-i <value> set the user-init value
-t set the camera to the current computer time
-c capture an image with the current camera settings
-Z DANGER, this option bypasses SAFE camera detection routines
-h show this help screen
Utility Help:
s10sh help
help show this help screen
open open the camera
reopen close and open the camera
close close the connection with the camera
speed [speed] change the serial speed
quit close the camera and quit the program
ping ping four times the camera
clear clear the screen under some terminal types
id show the camera id
date show the internal date of the camera
setdate set the camera date to that of the computer
disk show the CF disk letter
diskinfo <disk> show disk information
ls | cd | dir <dir> change to and list the specified directory
lastls show the last cached directory listing
get <pathname> get the specified image
getall get all the files in the current directory
getallold get all the old files in the current directory
getallnew get all the new files in the current directory
tget <pathname> get the specified image as thumbnail
view <pathname> view the thumbnail using xv
viewall view all thumbnails in the current directory
power show informations about power status
overwrite switch on/off the overwrite mode, when overwrite
mode is ON the old files will be overwritten with
the new files. Default ovewrite mode is OFF
mkdir <dirname> create a directory
rmdir <dirname> remove a directory
debug (DEBUG) turn the debug on/off
getpkt (DEBUG) wait for a packet from the camera
test <num> (DEBUG) send the specified request and wait for data
rm | delete <filename> remove a file in the current path
deleteall remove all files in the current directory
deleteold remove downloaded files in the current directory
deletenew remove new files in the current directory
protect <filename> set the protected flag (in the current path)
unprotect <filename> clear the protected flag (in the current path)
new <filename> clear the downloaded flag (in the current path)
newall exec new against all files in the current directory
old <filename> set the downloaded flag (in the current path)
oldall exec old against all files in the current directory
protectall protect all files in the current directory
unprotectall unprotect all files in the current directory
upload <source> [dest] upload a file (USB only)
setowner string change the owner string – WARNING NULL will clear!
capture take a picture using the current camera settings