Friday, February 27, 2009

Eye-Fi and Nikon D90

The economic downturn is affecting everyone. To help stimulate the economy I feel strongly that each and every one of us needs to dig deep and do our part. So, I bought a D90.

I had read that the D90 (and the D60) would at least have some ability to detect Eye-Fi cards when inserted and do something with them. LarryG over on the Eye-Fi forums has a little more explanation of what happens:
  1. In order to see the Eye-Fi Menu item in the D90, you will have to have an Eye-Fi Card inserted in the camera. The camera will then display the "Eye-Fi Upload" option in the Setup Menu between the "GPS" and "Firmware version" menu items.
  2. This new menu gives the user the option to enable or disable the Eye-Fi Card's ability to upload photos when inside the camera.
  3. In addition to the menu, the D90 will automatically provide power to the Eye-Fi Card when there are photo uploads pending or photos being uploaded. Once all uploads are completed, the camera reverts back to the user defined "Auto meter-off delay" power settings in the Custom Setting Menu.
That's all certainly good news because, for one, the D50's meter-off setting was really coarse. Literally, it goes from 16 seconds to 30 minutes with nothing in the middle! I suspect this huge meter-off delay to be the source of most of my battery life problems.

However, this is still much ambiguity on the D90, especially on what impact turning off "Eye-Fi Upload" really has. The meter-off delay tuning is really useful and effectively allows the camera to have a completely smart timeout for powering off the card. On the camera's part this requires just being able to read the Eye-Fi card's status.

But, does "Eye-Fi Upload" actually disable the card's WiFi radio? Is that sufficient if I am, say, on an airplane where I can't use radios of any kind? Is the card's power consumption lower in this mode? The Eye-Fi card itself draws roughly as much power as the SLR itself, so will enabling this option double my battery life?

Wednesday, February 18, 2009

Ad-Hoc Networks

There have been a few questions about Ad-Hoc networks over time. They simply can't work as it stands. It is not a simple matter of adding the network to the card, or forcing it to be detected.

For one thing, the cards can not be configured to use a static IP address. So there at least needs to be a DHCP server out there on the network somewhere. If someone really, really needs to do this, I would simply suggest a portable and battery-powered access point such as this one.

Tuesday, February 17, 2009

New Release: 008

Brad left a comment with a great bug report. As you can see in gitweb, I've fixed this. I was basically clobbering the password when I converted it from ASCII to a binary format because I forgot that it gets used twice. Oops.

http://sr71.net/projects/eyefi/eyefi-config-008.tar.gz

Thursday, February 5, 2009

New Release: 007

I've removed the O_DIRECT usage since I got the #ifdefs wrong. Linus says that there's a better way to do it anyway. I've done that, and all appears to be well. This should also make what I did portable to other POSIX platforms. Have fun!

http://sr71.net/projects/eyefi/eyefi-config-007.tar.gz

Wednesday, January 7, 2009

Working Standalone Server

I'll just point over to Jeff's blog post on the topic. This is a neat development. It should allow people to do things like keep their pictures private and not upload them at all to the Eye-Fi servers.

http://returnbooleantrue.blogspot.com/2009/01/eye-fi-standalone-server.html

This kind of thing could also make a really neat iPhone or Android app, now that Jeff has a proven algorithm. If you can get your phone and your Eye-Fi card on the same WiFi network, you could view things as they come out of your camera.

Anybody know of any tiny battery-powered 802.11 access points? I bet one of these plus one of these would be interesting. I'll have to test Jeff's program with an isolated wireless network and see what happens.

Thursday, December 25, 2008

Picasa Download Script

First of all, this is a mess. It uses a bunch of junk in 'daveperl', which is like my personal collection of perl idioms. Stuff like cat_file() that I use all the time and hate re-coding. I need to extricate this script from that stuff before it can really be useful to other people.

It used to use some Google Picasa perl library, but I grew really impatient with it. It's coded up in some really weird ways that do things like dynamically create perl objects and functions out of the XML that gets spit back from the Picasa API. It is pretty arcane stuff that I never did get working right mostly because it is a deal project.

The current stuff (I think) depends on the CPAN Picasa library and not the Google stuff any longer. But, there may be a dependency on the Google stuff in a place or two.

http://sr71.net/projects/picasa/

It basically goes and finds all the Picasa pictures, then sees if it has local copies. If not, it downloads them and sticks them in a directory. It caches things like the album modification time so it can speed things up not having to download the contents of *each* album during every execution. It uses filenames and exif timestamps to determine uniqueness. I don't do checksums because those change with picture rotation. If anyone finds this compelling or useful, let me know. I'll start trying to clean it up a bit so others might get some more use out of it.

Friday, December 19, 2008

Freestanding Server

People have asked a few times if there is a freestanding server or some other program to which the Eye-Fi card can upload. No, not really.

Here's how the Eye-Fi card and service work, at least in the way that I have them set up. This differs for the Eye-Fi "Home" card, or if you don't have the "upload to Internet" (or whatever it is really called) enabled.
  1. You take a picture, and dump it on your card
  2. Your card notices the picture gets on the network and looks for your PC. If it can't find your PC, it uploads directly to api.eye.fi (an Eye-Fi managed server on the internet)
  3. If it can find your PC running the Eye-Fi Manager, it uploads to your PC and lets the PC upload to Eye-Fi. The PC keeps a copy if you asked it to.
  4. The Eye-Fi server looks at your preferences and uploads pictures to Picasa, Flickr or whatever you want.
"Gallery" which I think is a collection of CGI script to manager photo uploads is an option as a destination to which Eye-Fi can upload. So, you can have Eye-Fi upload to a server that you run, but your pictures pass through their servers on the way. I haven't bothered doing this. When I first went and looked at Gallery, it had some big scary security holes in it that scared me away.

There were a few people working on a server to replace the Eye-Fi Manager. I have not heard about that effort in a while. There are some security mechisms built into the card to keep it from uploading to unauthorized software which make this hard to do. I don't think this is Eye-Fi being nasty or hating Linux or anything. It's a genuine security feature to keep the "bad guys" from tricking your card into sending all its pictures to the evil hackers. I would love to write a open replacement for this part of the Eye-Fi Manager, but I'm not sure how feasible that would be and still ensure that the "bad guys" don't do the same. I'd be more than willing to give it a shot if I had some idea how the card authentication worked.

What I do personally is that I trust Eye-Fi with my pictures. I let them go to Eye-Fi, then get uploaded to Picasa. I paid the $20/year or whatever it was to get 10GB of extra storage at Google. Then, I use the official Picasa API and some perl to download the pictures from Picasa back to my web server where I stick them in my own photo album. The downside to this is that I have to trust Google and Eye-Fi with my pictures along the way. The upside is that when I take a picture, it automatically gets backed up in three different places.