Nikon supports..

Nikon D70

Author: sjb (Steve Brown) -
Date: 4th April 2005
See also: Nikon's website
D70 review at
D70 forum at
Nikon D70 under Linux
Some D70 photos

I recently bought a Nikon D70 digital SLR and, naturally enough, I wanted to get it working under Linux. This page is a brief pointer to some software to achieve that goal.

Connectivity is controlled via the USB option in the "Set Up" menu on the camera. When set to "Mass Storage" the D70's memory can be mounted like any other removable drive - in SuSE 9.1 the D70 is mounted automatically as /dev/sda1 on /media/usb-storage-odd-NIKON-NIKONDSCD70xxxxx. In PTP mode you can control the camera using Picture Talk Protocol which is far more versatile.

The best method for controlling the camera is to use the ptpcam program supplied with libptp. ptpcam allows you to interrogate the camera settings and, optionally, change them to something else. It also allows you to download image files from your camera to your PC.

To actually shoot a photograph, I use gphoto. Theoretically, gphoto should also allow you to download the images from your camera, but it appears to contain a bug that prevents it from downloading images captured in NEF format, although it works fine with JPEGs. For the time being, ptpcam seems to be the only way of downloading NEFs.

I'm told that recent versions of gphoto work correctly.

Once you've copied the image from the camera to the PC, there are some tools to help you process the picture.

  • Dave Coffin's dcraw is a very good program for converting Nikon's NEF (raw) format into PPM files that can then be converted into other formats with ImageMagick (see below) or opened in Gimp. I use a fork of Dave's code that can be found here which offers a few more options than the original.
  • jhead is a little utility that can read EXIF data from JPEG files.
  • ImageMagick is a suite of incredibly useful image manipulation programs.
  • metacam retrieves camera meta information from image files. It has some Nikon specific support.
  • libjpeg includes the cjpeg and djpeg utilities for working with JPEG files.

I've cobbled together a Perl script - d70c -, acting as a wrapper for libptp, to allow users to control their D70 using a text based GUI (make sense?).

This script is D70 specific but could be modified to work with other cameras given the inclination and motivation. It's very much a work in progress at this point, but if you'd like to try it out, you can download it using the link below.

Prerequisites for d70c to run:

Optional components:

  • dcraw to process NEFs.
  • ImageMagick (or another image viewer) to display decoded NEFs.

Download the script here and be sure to read the README file!

Now with experimental support for saving and loading profiles

d70c screenshot