Epson PhotoPC Software for Unix/Linux, Windows, and MS-DOS

This page describes "freeware" software which may be used to control and retrieve photos from Epson PhotoPC digital cameras under Unix/Linux, Microsoft Windows 95, Windows 98, Windows NT, and MS-DOS. This software also may work with Agfa ePhoto, Olympus D-xxxL/Z, Sanyo, Nikon Coolpix, Toshiba PDR-2, and other digital cameras based on firmware from Sierra Imaging, Inc. and/or digital cameras which emulate their RS-232 serial protocol.

The Camera

The Epson PhotoPC is one of a family of digital cameras based on Fujitsu's SPARCLite microprocessor and Sierra Imaging's chipset and firmware. The least expensive Epson camera model produces quality photos in JPEG format at a resolution of 640x480 at a moderate price (~$250 "street price"). Other camera versions, including those from Olympus, produce higher-resolution JPEG images, 1280x1024 pixels or more, using a SRL format much like a conventional 35mm film camera, at a price closer to $1,000. All cameras compatible with this software offer a serial port connection to a PC for the purposes of downloading photos from the camera.

Supported camera models include: Agfa ePhoto 780, ePhoto 780C, ePhoto 1280 and ePhoto 1680; Epson PhotoPC "classic" / CP-100, PhotoPC 500 / CP-200, PhotoPC 550, PhotoPC 600 / CP-500, PhotoPC 650 PhotoPC 750Z and PhotoPC 3000Z; Nikon CoolPix 700, CoolPix 800, CoolPix 900S, CoolPix 900, CoolPix E950, CoolPix 950, CoolPix 990 and CoolPix 4500; Olympus D-220L, D-320L, D-340L, D-340R, D-360L, C-400L, C-400Z, D-400 Zoom, C-410L, D-450 Zoom, D-490Z, D-500L, D-600L, D-600 Zoom, C-820L, C-830L, C-840L, C-860L, C-900 Zoom, C-1000L, C-1400L, C-2000, C-2020, C-2100UZ and C-3030 Zoom; Polaroid PDC-640; Toshiba PDR-2; Sanyo-Fisher FVD-V1; and Sanyo VPC-G1, VPC-G200, VPC-G200EX, VPC-G210 and DSC-X300. Not all of the above-listed cameras support all of the features of the software, although the software's basic photo download and erase functions have been reported to work with all the above listed camera models. (The authors of the software have not personally tested each of the above listed camera models, but instead rely on reports from users of the software. Please let us know if you have had success with a camera model not listed above!)

The Software

The software is command-line oriented, and does not make use of a graphical user interface (GIU). By using this software with a "batch file", or a Windows short-cut icon, photos can be quickly downloaded from the camera to a PC via a serial cable, with a minimum of effort.

The software is available for downloaded (in source code form) for Unix/Linux platforms from the Eugene Crosser's (the author's) digital camera Web site, A list of compatible digital cameras can be found there. Software for MS-DOS, Microsoft Windows 95/98, and Microsoft Windows NT, in both executable and source code formats, can be found at Bruce Lightner's PhotoPC Web site, The software is free and is therefore supplied without warranty of any kind. There are almost no restrictions regarding its use and/or distribution. (See "Software License" below.)


Basic features The basic syntax for using photopc is:
  photopc [-h] [-v[v]] [-q] [-s speed] [-l device] [command [params]] ... 
Commands are normally entered at an "MS-DOS prompt". Under Windows, camera control commands can be entered using an "MS-DOS Prompt" window (sometimes referred to as a "DOS box" or "console window"), or invoked using a Windows "short-cut" icon (or a PIF).

To get help on using the program:

  photopc -h
This will print a brief (somewhat bewildering) summary of the program's options and commands. For a complete description of the program's options and commands see the photopc manual page. This file, "", is included with the software source package in Unix `man' format.

Specifying the Camera Port

To specify the serial port to which the camera is attached:
  photopc -l device
where device is the name of the serial port (a.k.a. "line") which has the camera attached. Under Windows and/or MS-DOS, the allowable "device" names are "COM1:" and "COM2:". The default serial port is "COM1:". (Note: That's "dash-L" and not "dash-one"!)

Specifying the Serial Port Speed

To specify the speed of the serial port used to communicate with the camera:
  photopc -s speed
where speed is the requested baud rate: 9600, 19200, 38400, 57600 or 115200. The default speed is usually the highest. You may find that with older PCs a slower speed is needed for reliable operation.

Querying the Camera

To query the camera:
  photopc query 
This will dump the entire state of the camera including information like the number of photos taken, the amount of free memory, the current date/time set in the camera, the camera's model and serial number, the user-specified camera setting, etc.

Downloading a Single Photo

To download a single photo:
  photopc image num filename
where num is the number of the image to be downloaded and filename is the name of the file to receive the JPEG image. For example "photopc image 4 photo4.jpg" will download the 4th photo into the file "photo4.jpg".

Downloading the Entire Camera

To download all the photos in the camera:
  photopc image all directory
where directory is the name of the directory to receive the JPEG files.

For example, the command "photopc image all .", will downloaded all images from the camera into the current working directory, into files named "MMDD_CCC.jpg" where "MM" is the month the photo was taken, "DD" is the day of the month the photo was taken, and "CCC" is a sequence number.

The user can control the program's JPEG file naming algorithm using the "-f" option. Two useful options under MS-DOS are:

    -f 1    (image file names are MMDD_CCC.jpg (default))
    -f 2    (image file names are YYMMDDCC.jpg)
where "YY" is a two-digit year, "MM" is a two-digit month, "DD" is a two-digit day of the month (all based on the the time that the photo was taken), and "CC" (or "CCC") is a sequence number. The user actually has complete control over the file naming through the use of "-f" and a format string...the description of which is beyond the scope of this document.

Deleting a Single Photo

To delete a single photo:
  photopc erase num
where num is the number of the photo to be deleted.

Deleting All Photos

To erase all photos from the camera:
  photopc eraseall
This will delete all photos from the camera.

Getting a Photo Count

To get of count of photos in the camera:
  photopc count
This will report the number of photos currently stored in the camera.


Command/Switch Order

You can use commands in almost any combination. The program "switches" such as "-l" and "-s" can be placed anywhere on the command line. The commands (such as "query" and "image") are executed in the order given on the command line.

For example, to use serial port COM2 at 57600 baud to query the camera, then download all the images in the camera to the directory "/photos" on drive C: (in "YYMMDDCC.jpg" file name format):

  photopc -l com2: query -f 2 image all c:/photos -s 57600
A command such as this can be invoked as part of a Windows 95 "short-cut" icon, allowing quick, automatic downloading of a camera with a single mouse double-click.

Communication Problems

If you have trouble communicating with your camera, try lowering the serial port speed using the "-s" option. (Turning the camera on also solves many camera communication problems! :-)

If you interrupt communication with your camera by aborting the program (e.g., by enter ^C), you may have to turn the camera off and back on in order to restore proper communication.

If you find that the program cannot connect to your PC's serial port under Windows, first verify that no other program is using the serial port.

The MS-DOS version of "photopc" will work under Windows (even Windows 3.1), but often only at a reduced serial port speed. However, after running the MS-DOS version of the program one must first close the "MS-DOS window" (to release the serial port) before switching back to using the Windows version of "photopc".

Time Zones

Your camera has a real-time clock which can be set by the program. This internal clock is used to time-stamp photos as they are taken. By default, the program assumes that the clock in the camera is set to "universal time" (also known as GMT or Zulu time). Therefore, when the program displays times and/or automatically creates file names using photo time-stamps, "universal time" is converted into "local time" according to your computer's "time zone" setting. If you want to set your camera's internal clock to "local time", and not have the software apply a "time zone correction", then add the "no time zone" switch to the program's command line, as follows:
  photopc -z ... 
Under the MS-DOS operating system, the time zone is set using the "TZ" environment variable. The TZ environment variable can be set with the following MS-DOS command:
  set TZ=zzz[+/-]d[d][lll]
where "zzz" is a required three-character string with the name of the current time zone, "[+/-]d[d]" is a required field with an optionally signed number of one or two digits specifying the local time zone's difference from GMT in hours, and "lll"is an optional three-character field with the name of the local time zone during daylight savings time. This command should be placed in your AUTOEXEC.BAT file. For example, the following command sets the time zone to Pacific Time:
  set TZ=PST8PDT

Under MS-DOS, if the TZ environment variable is not set the program will not apply a time zone correction, giving the same program behavior as with the "-z" command line switch. Under MS-DOS, if the TZ variable is set, but does not satisfy the above described syntax, the time zone correction is undefined (i.e., probably wrong).

Under Windows, unless the "-z" command line switch is set, the program always will apply a time zone correction, as defined by the time zone setting in the Windows operating system. However, if the TZ variable is set (using to the above described syntax), then it overrides the Windows time zone setting, and the program will apply a time zone correction as defined by the TZ variable. Beware that if the TZ variable is set under Windows, but does not satisfy the above described syntax, the time zone correction is undefined (i.e., probably wrong).

Software Revision Level

You can determine the revision level of the program by using the following command:
  photopc -V 
Please include this information when reporting program bugs.

Software License

This software is copyright ©1997, 1998, 1999, 2000 by Eugene G. Crosser. Microsoft Windows and MS-DOS support is copyright ©1997, 1998, 1999, 2000 by Bruce D. Lightner.

You may distribute and/or use for any purpose modified or unmodified copies of this software if you preserve the copyright notice above.


Trademarks referenced herein are those of their respective owners.

Bruce D. Lightner, last updated Thu Oct 7 09:32:51 PDT 2004 . All opinions expressed here are solely those of the author, Bruce Lightner. Click here to view full disclaimer text.