Remote Control Driver and GUI for the Nikon Coolpix 990, 950, 880, 775, and 995 Digital Cameras

  • Download the source code for photopc-3.05J23, an enhanced version (with USB support) of Eugene G. Crosser's original photopc driver for the Nikon Coolpix 990 and Coolpix 950 Digital Cameras. This software also works with many Epson, Agfa, Olympus, Toshiba, Sanyo, Polaroid, and other Nikon digital cameras. For example, the Coolpix 995/775 (only with serial cable), the Coolpix 880, Olympus C-3030 Z, and Olympus C-2100 UZ all have been reported to work with photopc. Note: newer cameras (Coolpix 995/775 and beyond) can only be controlled via a serial cable (however, see

    Precompiled Microsoft Windows 98/2000 executables and a GUI front end are now available.

    Important: you should first upgrade the camera firmware (Coolpix 950 to v1.3 or higher; Coolpix 990 to v1.1 or higher). Earlier versions of the firmware contain bugs which may cause hardware lockup and other problems. To check which firmware version you have, disconnect the serial (or USB) cable. Then turn the camera on while pressing the menu button (continue holding the menu button down until the display comes on).

    On UNIX systems, the libusb library (version 0.1.5 or later) is required to enable USB support. (FreeBSD and NetBSD users may want to try this version that incorporates this patch, following these instructions; FreeBSD 4.6 users will also need to apply this patch). To install photopc do the following
    gunzip photopc-3.05J23.tar.gz
    tar -xf photopc-3.05J23.tar
    cd photopc-3.05J23
    make install
    If your camera is not recognized, you may need to add the correct vendor and product ID in usb_camera_table.h and make install. Here are gzipped tar files containing precompiled Linux binaries for the Intel i386 architecture: dynamic, static. Be sure to enable real time priority mode by installing the executable with the setuid bit enabled: execute (as root) the command
    chmod u+s photopc
    in the installation directory (currently, setuid is also required by the libusb library to open the USB device). Photopc has been developed under the 2.4.0 version of the Linux kernel (on many Linux systems it will also work with the partial USB backport available in kernel version 2.2.18 or higher). On Linux systems, you may need to add the following line to the end of /etc/fstab
    none /proc/bus/usb usbfs defaults 0 0
    You then need to either reboot or
    mount /proc/bus/usb

    Microsoft Windows 32-bit executable (with USB support): photopc-3.05J22. This version works under both Microsoft Windows 98 and Windows 2000. When you first plug the camera into the USB port, the system will install the c:\windows\system32\driver\usbscan.sys driver from the Nikonview CD. This driver is needed in order for the camera to be recognized. If you have NikonView installed you will need to uninstall NikonView and reboot before using photopc. Otherwise NikonView will start up automatically and try to compete with photopc for characters from the USB bus (even if you close the NikonView window). Exposure settings embedded in EXIF image files can be viewed with epinfo.exe.


  • The USB port is selected by executing photopc with the -u option. Documentation is available by executing the command
    photopc -h
    and also in the man page and revised protocol.
  • Troubleshooting Tips

  • Coolpix 990: Turn the camera on and wait for the display to come on before plugging in the USB (or serial) cable. Otherwise the snapshot command may cause the camera to hang! If you want to be able to turn the camera power off completely without having to disconnect and reconnect the USB cable (to keep the CCD cool, thereby minimizing thermal noise), you may find these instructions helpful.
  • Coolpix 990: Movies must be taken manually, but they can be downloaded (as Quicktime .mov files) like any other image. If the last image taken was a movie, it may be downloaded and viewed with the MOVIE button in xphoto. A good Linux Quicktime player is xmovie.
  • Coolpix 990 (Microsoft Windows users): If you have a USB scanner attached you might have to disconnect it before running photopc.
  • Coolpix 990 (SuSE Linux users): USB support is reportedly broken in SuSE Linux versions prior to 7.1, regardless of the kernel version.
  • Coolpix 990: The lcd-brightness command doesn't work for the Coolpix 990. However, the following command may be used instead: photopc -u seti 32 N cmd 6 9
    where N represents an integer from 0-31. Be very careful when typing in these "cmd 6" instructions; some of the other ones do calibrations or change factory settings (although I've disabled most of the dangerous ones).
  • Coolpix 950 (Microsoft Windows users): Be sure to specify the right COM port with the -lCOMn: option.
  • It doesn't matter whether the switch is in the automatic or manual record position.
  • (DOS users): DOS treats % as a command-line escape character, so if you want to send a single % character to photopc, you need to type %%. For example, to download images to file names image001.jpg, image002.jpg, ..., use the command (see the man page):
    photopc.exe -u -f "image%%%%001d.jpg" image all .
  • We prefer the use of an AC adaptor (with the batteries removed) to avoid problems with power-off timeouts and battery drainage; however, these timeouts can be changed with commands like (see the man page for more information):
    photopc -u autoshut-host 3600
  • New Features

  • 3.05J23: UNIX version should now accept new return value of usb_bulk_write() in libusb-0.1.4 and higher.
  • 3.05J20: Added resolution names for Olympus C3030 Z and Coolpix 995;
  • 3.05J18: Added USB support for Epson, Agfa, Olympus, Toshiba, Sanyo, Polaroid, and other Nikon cameras;
  • 3.05J16: Improved serial support for Coolpix 990 (thanks to D. Holmes);
  • 3.05J15: Improved serial support for Coolpix 950;
  • 3.05J14: Support for Microsoft Windows 2000;
  • 3.05J12: Firmware upgrades allow bug work arounds in xphoto and photopc to be removed;
  • 3.05J12: USB transfer rate doubled (250kB/s);
  • 3.05J12: Digital zoom for both the CP950 and CP990 (1.0X-2.5X only).
  • Graphical User Interface

  • xphoto-3.25 for UNIX a GUI front end for photopc, providing remote computer control of the shutter release, many imaging options, and interval photography. One can also specify an exposure start date and/or time. It is distributed under the GNU GPL License. Requirements: a TCL interpreter (wish), photopc-3.05J23, and xv (or other jpeg viewer).

    New Features

  • xphoto-3.25: Implemented workaround for problems the Coolpix 990 (in USB mode) had in turning on the LCD again after clicking the xphoto Off button. (In the previous version, it had been necessary to click Expose to turn the LCD on again).
  • Microsoft Windows users should use xphoto-3.25 for Microsoft Windows with the TCL toolkit (version 8.3.4 or later recommended; most Microsoft Windows users will want the Binary Release, not the source code!). You may need to edit various paths in the configuration section of the xphoto.tcl script. To have complete functionality the following additional utilities may be helpful:

  • Jpeg viewer for Microsoft Windows (IrfanView32)
  • Jpeg comment utilities rdjpgcom and wrjpgcom (
  • Quicktime player
  • Notes:

  • The Off button restores the options to default values for conventional photography.
  • Interval photography is possible with the count and timer options. A "%d" embedded in the file name will be converted to the current frame number.
  • JPEG Image

    Screenshot of xphoto

    JPEG Image

    Coolpix 950 mounted on Olympus BX-50 trinocular microscope (Full size)

    JPEG Image

    Photomicroscopy Workstation (Full size)


  • Eugene Crosser, author of the original version of photopc;
  • Scott Fritzinger, author of gphoto, for pointing out the need for a USB_CLEAR_HALT message after every read and write;
  • Miguel Grinberg, for invaluable information and assistance regarding the USB support for Microsoft Windows;
  • Manfred Gessler, for a superb job as beta tester of the Microsoft Windows version of photopc and xphoto;
  • Brian Sherrod, beta tester for Microsoft Windows 2000;
  • Alex Izvorski, for usb_camera_table.h;
  • The cygwin GNU development project for Microsoft Windows.
  • News Group for Coolpix 990

  • Archive

  • Old Versions
  • References

  • For further details see Economical digital photomicroscopy [newer than published version], S. Wunsam and J. C. Bowman, J. Paleolimnology 25, 399-403 (2001). Also see the Diatom Image Archive for sample images taken with the Coolpix 950.
  • A C-mount optical adaptor can be used to couple the camera to a microscope. Alternatively, one can use a universal LE (Lens-Eyepiece) Adapter (illustrated in the photos above) coupled to a 28 mm to 37 mm step-up adapter (part number NKN-ADP).
  • Olson & Couger's comparison of optical artifacts in the Coolpix 950 and 995.
  • The Nikon software shipped with the Coolpix 995 reportedly does not support use of the serial COM port. Nevertheless, photopc supports the Coolpix 995 using the serial COM port. The optional Coolpix 990 serial COM port cable can be used with the Coolpix 995. Alternatively, D. Holmes has provided detailed instructions and drawings that show how to construct a dual USB and serial cable from the Nikon Coolpix 990 USB cable.
  • According to, files on the Coolpix 995 can be accessed directly with the Linux usb-storage driver, which allows you to mount the camera as a drive.
  • If you simply want a remote shutter release that does not require the use of a computer (and you do not need to automatically download images), you might consider using Nikon's MC-EU1 remote control unit, SQL's remote control software for Palmtops, or the alternative device from Harbortronics (which allows for extended cable lengths). You can even build your own old-fashioned mechanical release!
  • An alternate Coolpix 990 controller for Microsoft Windows is available from Yet another Coolpix 950/990 controller for Microsoft Windows is available from
  •  visitors have accessed this page since August 3, 2000.