Skip to main content

First impressions of Nikon D40

Obtained this as refurbished from Adorama for $375 with 18-55mm DX AF-S lens. Adorama shipped it for free and it arrived overnight (NY to MA). Its declared as refurbished but the body is blemish free. I would say this is a new camera (unless some one soaked the interior in dust/water/acid etc). There is a 90 warranty from Nikon on both lens and body.

From the exif information on the pictures I see that the camera has about 2600 shutter actuations, and the serial number has two dots punched in at the start and end. According to this page those dots indicate Nikon has refurbished the camera.

I found a few dust specks on the viewfinder. (Aiming at the sky and looking around the field of view). I remember on the old Nikons, that my uncle had, you could pop-off the pentaprism and clean it all out, but I don't think you can do that here.

The camera with this lens weighs about as much as my Nikon F65 (or N65), which is to say, less than a kilo.

The battery needs to be charged, but it had enough juice to go through the initial set up. It prevented me from taking any pictures though. Battery is charging, owner is pretending to do data analysis.

Things to do when battery charges (other than go grocery shopping)
  1. Look for dead/hot pixels on sensor
  2. Take shots at different ISO levels to see noise
  3. Evaluate exposure modes
  4. Look for dead/hot pixels on display LCD
  5. Evaluate auto focus accuracy
Things to buy:
  1. Plastic protector for the LCD screen
  2. UV filter (as protection) for the DX lens
PS. Sorry Ben, but I decided I wanted to see if the price premium on DSLRs was worth it over point and shoots. If I find 6 MP too restricting I might upgrade in a few years...

Comments

  1. I'm looking forward to following your review of the D40... I'm still torn between the D40 and the D60 or to wait till the D3000 is released

    ReplyDelete
  2. Delighted to hear that you are pleased with your new refurbished Nikon from Adorama - but if you ever have a query or concern regarding an order from Adorama Camera - or AdoramaPix - please don't hesitate to contact me directly.

    Sincerely

    Helen Oster
    Adorama Camera Customer Service Ambassador

    helen.oster@adoramacamera.com
    www.adorama.com

    ReplyDelete
  3. Hi Nick,

    I looked at a lot of people's opinions of these three cameras. The summary I took away from all these opinions was that

    1. 6MP was good enough, even for reasonable sized enlargements (If you print at 300 dpi you can get 10"x6.6" with no upsampling. If you print at 150 dpi you can get 20"x13.2")
    2. 6MP on this size sensor gave good low light sensitivity and noise compared to 10MP on the same size sensor.
    3. The D40 was small and light

    One of my constraints was price, and when I found this particular deal I went for the D40 with little hesitation.

    I am an amateur photographer. The only other cameras I can compare it to are my film Nikon F65 and my digital P&S Canon A510. So far I have not made any prints from the images, just looked at them on the computer. But I have to say, after a weekend on the beach with it I am very happy with the D40.

    Best
    -Kaushik

    ReplyDelete
  4. Hi Helen,

    Thanks for your note. I am impressed at how you keep up with Adorama references on the web! (I have seen your comments on dpreview)

    I am very happy with Adorama's service so far, and I have ordered a few more things from you.

    Best
    -Kaushik

    ReplyDelete

Post a Comment

Popular posts from this blog

A note on Python's __exit__() and errors

Python's context managers are a very neat way of handling code that needs a teardown once you are done. Python objects have do have a destructor method ( __del__ ) called right before the last instance of the object is about to be destroyed. You can do a teardown there. However there is a lot of fine print to the __del__ method. A cleaner way of doing tear-downs is through Python's context manager , manifested as the with keyword. class CrushMe: def __init__(self): self.f = open('test.txt', 'w') def foo(self, a, b): self.f.write(str(a - b)) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self.f.close() return True with CrushMe() as c: c.foo(2, 3) One thing that is important, and that got me just now, is error handling. I made the mistake of ignoring all those 'junk' arguments ( exc_type, exc_val, exc_tb ). I just skimmed the docs and what popped out is that you need to return True or...

Remove field code from Word document

e.g. before submitting a MS, or hand manipulating some formatting because Word does things (like cross-references) so half-assed [from here ] Select all the text (CTRL-A) Press Ctrl+Shift+F9 Editing to remove anonymous comments that only contain thanks. I really appreciate the thanks, but it makes it harder to find comments that carry pertinent information. I'm also going to try and paste informative comments in the body of the post to make them easier to find.

h5py and multiprocessing

The HDF5 format has been working awesome for me, but I ran into danger when I started to mix it with multiprocessing. It was the worst kind of danger: the intermittent error. Here are the dangers/issues in order of escalation (TL;DR is use a generator to feed data from your file into the child processes as they spawn. It's the easiest way. Read on for harder ways.) An h5py file handle can't be pickled and therefore can't be passed as an argument using pool.map() If you set the handle as a global and access it from the child processes you run the risk of racing which leads to corrupted reads. My personal runin was that my code sometimes ran fine but sometimes would complain that there are NaNs or Infinity in the data. This wasted some time tracking down. Other people have had this kind of problem [ 1 ]. Same problem if you pass the filename and have the different processes open individual instances of the file separately. The hard way to solve this problem is to sw...