OpenDiS contains a user-level program and an access library for using DigitaOS enabled cameras. Currently those cameras would be the Kodak DC220, DC260, DC265, DC290 and HP Photosmart C500 and the Minolta EX1500. Although the Kodak digital camera series works best with this application the others have been found to work with the application also. This program has a CLI (command line interface) which is very useful for scripting tasks.
What is needed: OpenDiS 0.0.3
Run the following commands to compile, extract and install OpenDiS
bash$ tar -zxvf opendis-0.0.3.tar.gz bash$ cd opendis-0.0.3 bash$ ./configure bash$ make bash# make install
The following usage section is taken directly from the output of the ks command.
Usage: ks [OPTION]... [COMMAND]...
Connect to camera and perform COMMANDs. Updated: 0.0.3 Development note: currently some COMMANDs are supported; default action is to display this help. However, all listed OPTIONS are now supported. -d DEV, --device=DEV Look for camera at device DEV. Defaults to /dev/ttyS0. -r RATE, --rate=RATE Use bit-rate RATE for serial device. Defaults to 9600. Not applicable to USB or IrDA. -t TYPE, --type=TYPE Specifies device type, one of: "serial" "usb", or "irda". Normally, device type can be deduced from DEV and need not be specified -i, --irda Same as --type=irda -s, --serial Same as --type=serial -u, --usb Same as --type=usb -v --verbose More output. -q --quiet Less output. -l, --list List supported commands -h, --help Display this help and exit. Currently following commands are supported: delall Delete all files in the camera download Download pictures thumbs Download thumbnails gettime Get camera's date/time settime Set camera clock according to computer's clock shoot Take a picture status Show pictures taken, available and raw count getpowermode Checks if camera is on poweroff Turn the camera off
Special USB notes. The USB stack has been ever changing in the developmental kernels and as such works differently from time to time. In playing with the latest developmental kernel released the camera tends to show up on /dev/dc2xx0 or /dev/dc2xx1, independent of the fact that only one camera is connected. The support for these devices is all fairly new, so expect to have to play with it to get it working. The following should allow one to download all images from the camera to the working directory with a USB connection. Make sure that the camera is in connect mode.
bash$ ks -d /dev/dc2xx0 download
Serial support does work and as such the following command should allow one to download all images from the camera into their current working directory. Modify the serial port device name as necessary. Ensure that the camera is on and in connect mode and that the serial cable is connected between the computer's serial port and the camera.
bash$ ks -d /dev/ttyS0 download
IrDA is not supported in the release version of OpenDiS, however support has been added to the CVS version. To obtain the latest version of OpenDiS via CVS run the following (hit the enter key at the password prompt, there is no password):
bash$ cvs -d:pserver:firstname.lastname@example.org:/cvsroot/ods login bash$ cvs -d:pserver:email@example.com:/cvsroot/ods checkout bash# bash$ ods/opendis-current
To compile and configure this version do the following:
bash$ cd ods bash$ cd opendis-current bash$ ./configure bash$ make bash# make install
An example command which will download all the images from the camera via IrDA would look as follows. Remember to have the camera on and in connect mode. It may also be advisable to increase the auto-shutoff feature to a larger value (5 minutes if possible).
bash$ ks -d /dev/ircomm0 download
This Python script written by Sai Lai Lo of AT&T Cambridge Laboratories allows for download
of images from Kodak Digital Cameras running DigitaOS (DC220, DC260, DC265 and DC290) and using USB for transfer. Some have problems with this script and some don't. However it is nice to cover all bases.
Here a working copy of the Command Device Protocol Python Script can be attained. The original Command Device Protocol Python Script for which the one above is derived has to be edited to remove leading text to work.
The script depends on /dev/kodak existing due to the way older kernels accessed the Kodak Digital Camera USB Device. A symbolic link must be created between the actual device the camera is on and /dev/kodak. If the camera is on /dev/dc2xx0 the symbolic link needed can be created with the following command:
bash# ln -s /dev/dc2xx0 /dev/kodak
Be sure to substitute in the proper device name instead of dc2xx0 if the camera was not assigned dc2xx0. To list all files on the camera run the following command:
bash$ python cdp.py
To download a single image from the camera run the following command, remember to modify the command accordingly for your specific camera:
bash$ python cdp.py 2:DC265_01/P0000748.JPG
That command will download the image P0000748.JPG to the directory DC265_01 in the current directory. A quick and easy command to download all the images from the camera would be:
bash$ for file in $(python cdp.py); do python cdp.py $file; done
This is just a few of the many ways such a script can work. It is possible to use the above command in a larger shell script to automate downloading the images from the camera, converting the images to another format, resizing the images, creating a web page automatically, and many many others. The options are endless when it comes to scripts like this.
Still deciding the best way to implement this section. Possibly a DocBook manual for gPhoto needs to be written but according to the gPhoto project web site a manual is being developed at the moment. Contact with the developers of gPhoto has been made and a decision to work on the document at some point, presuming someone else doesn't do it earlier, has been made. However the document processing program used to create this HOWTO, LyX, does not support all the necessary SGML tags and thus that will become an intermediate project before a manual for gPhoto.
A manual is available for gPhoto with its source code and may also be distributed with the various package offerings available with gPhoto binary distributions. The filename is MANUAL and it is located in the root of the extracted tar archive. The file INSTALL details the process of compiling and installing gPhoto if a binary package is not available for a particular distribution.
gPhoto supports serial image transfer from the Kodak DC20, DC25, DC200+, DC210, DC210+ Zoom, DC215 Zoom, DC220, DC220+, DC240, DC260, DC265, DC280 and DC290 with it's 0.4.3 release. With the CVS version of the software USB support is added for the DC220, DC260, DC265 and the DC280. gPhoto tends to be the preferred application of most digital camera users under GNU/Linux and is distributed with Helix GNOME.