Nikon D100
What is the Maximum Compact Flash Card Size?

In 2003, when I got my Nikon D100, I also bought a 2 GB compact flash card. Way back then this set me off around $600 just for the CF card, but it would hold close to 6 rolls of film in RAW format, and I don't recall ever exceeding that many rolls of film in a single day. I could always download the bits to my laptop at the end of the day, in the comfort of a Motel 6 or suchlike, and then start from scratch the next day. It was also the largest CF card Lexar made, so I went for it.

I quickly learned that I hardly ever needed RAW format for the purpose of double-checking the exposure of my LF camera, hence I switched to JPEG. Moreover, with the rather contemplative approach of a LF camera, along with the option to delete erroneous exposures in my D-SLR on-the-fly, I found it hard to fill 2 GB even during a 4 week road trip. Think of it this way: A single sheet of 4x5" Velvia Quickload, along with development in a professional lab, will set you off close to $6. How many of them will you burn in a single day? Now extrapolate this number to a 4 week road trip and do the math.

Fast forward to 2007: CF cards with 16 GB capacity are now available at a fraction of the cost of a 2 GB way back when... and DVD burners come as standard equipment in tablet sized laptops. Moreover, I eventually learned that the automatic white balance setting isn't always optimal—especially photographing sunrises of a glaciated mountain—and wildlife most certainly won't be cooperative with careful exposure bracketing. Before upgrading, though, I did my homework. I googled whatever internet source I could find to make sure my 4-year-old D-SLR could handle more than 2 GB[1]. Collective on-line wisdom had it that as long as my camera had a version 2.0 firmware—which it does—this should work just fine[2]. I found the best deal at Amazon. Yes, they do sell books, but beyond that, they'll sell table saws and compact flash cards, so why not double-check for a deal?

My order arrived promptly, all the more factoring in a delay for which Amazon mailed an apology even more promptly. Anxiously I dropped the card into the camera. After a lengthy pause the camera reported 348 shots left in RAW. Hm... 348 only? I mean, if 2 GB gets me around 200 shots, shouldn't 16 GB allow for around 1600? After taking 348 mostly uninspiring pictures of the inside of a lens cap, the camera duly reported 0 shots left, and stubbornly refused to even attempt to trip the shutter. End of memory? My computer thought not so fast, there are some 12 GB left on the CF card[3]. But apparently my camera thought otherwise—end-of-memory—no shots left.

To cut a rather long (and rather technical) story short, I began to suspect that there was a problem with the camera's idea of number-of-shots left[4]. I connected my CF card to my computer, transferred a previously taken picture to my CF card, then re-inserted the CF card into my camera, and low-and-behold I was good for another 410 or so shots in RAW format...

My semi-formal conclusion: the D100 won't handle anything larger than 4 GB, even with the version 2.0 firmware upgrade. Shortly afterwards, I read on a reliable internet forum that it was not until the D70 that Nikon fixed the remaining shots counter in their firmware. Given that the D100 predates the D70, and given how source code bases are handled these days for reasons of security and economy, I wouldn't be surprised to learn that this bug has not been discovered in the D100 time-frame.

This may not be all that bad, after all, since a standard DVD burner won't burn much more than 4 GB per disk anyway. Hence taking backups at a rate similar to the rate at which I can produce the data may not be that outrageous an idea. Except that now I'm left with a 16 GB card of which I can merely use just under 25%. Re-enter Amazon: Not only did they have the best price of any of the on-line sources I checked; they gladly accepted a return and refunded shipping—for the return trip!

Technical Details

  1. 2 GB equals 231 bytes, which is the limit of signed 32bit integers.
  2. Firmware is the kind of software that's sort of semi-hardwired into your camera. To check the firmware version of your D100, review any image in-camera and thumb the 4-way switch on the back of your camera left or right until it displays shutter speed and aperture; then one of the lines above will tell you Firm Ver. As long as you see Ver. 2.0 on the right you should be fine.
  3. My computer reported a total card capacity of some 16.3 billion bytes, FAT32 file system, with 32 kB allocation units. External hard drives and CF cards appear to be sold in decimal gigabytes (1 GB = 109 Bytes), while they are typically reported in binary (1 kB = 210, 1 MB = 220, and 1 GB = 230 Bytes). If nothing else, the resulting confusion should make it easier to sell larger hard drives and CF cards...
  4. The reported CF card capacity of about 16.3 billion bytes, modulo 4 [binary] GB and then divided roughly 9,700 [binary] kB per RAW shot, yielded about 348 RAW shots; allowing for a directory on the card or suchlike. This suggests that some intermediate calculation must have exceeded the 4 [binary] GB limit of unsigned 32bit integers.