Tuesday, April 22, 2008

Eye-Fi on Vacation

I just returned from a lovely vacation in Playa del Carmen, Mexico. The hotel I stayed at had Wifi, and I took my trusty D50, Eye-Fi card, and my Linux laptop. But, I never actually used the card. I stuck with my trusty non-Wifi Sandisk card.

Why? Well, I promised my lovely wife that the laptop would stay in its bag except for checking flights (we were affected by American's MD-80 issues). It's a bit hard to program the new network names into the card without the laptop, so it went unused. I also did not want the card sitting in the camera without using its wireless capabilities because the only time I've ever been concerned with battery life in my SLR has been with the Eye-Fi card in it. Contrary to what is in the FAQ I do seem to feel the battery life shorten significantly with the card in there. I wish I had an A/C adapter and an ammeter for my camera to measure this.

Anyway, I really do wish there was some way to configure the card out in the field, or even shut off the radio. I'd love to not have to lug my laptop around (I really need an iPhone). Perhaps the card could populate the image folders on the card with partial ESSIDs for the open wireless networks that it sees. If I changed the active folder on the camera over to one of those, the card could start using the new network. I bet this would be nearly impossible to get working on all cameras, but it might work on a good subset.

Maybe other features of the card could be enabled or disabled by having the user view and delete pictures on the card. Could the card detect when the camera deletes a picture that had an image of "RADIO OFF" in it and actually turn off the radio?

That's really why I'd love to hack the firmware. I could customize the card for me and my own perverted personal use like I do with my kernel.

Monday, April 21, 2008

Eye-Fi Config Version 003

New Features since 002:
  • use standalone crypto implementation for PKCS#5 from wpa_passphrase. Keeps us from having to depend on running wpa_passphrase with system()
  • better error reporting when mount points can not be found
  • fixed an error with eyefi_mount[] getting set when there is no real card there
  • moved card initialization order around so that it can actually use debugging from -d flag
Download here

Booting the Eye-Fi Firmware

Has anyone out there ever run eCos or Redboot under a qemu instance? I got a version of little-endian Malta Redboot, and got it to run. But, I think the Eye-Fi card is big-endian.

What I'd like to do is get the Eye-Fi firmware booting in qemu so that I can start trying to modify it. If figure that if I can get another Redboot to load the Eye-Fi firmware image and run it, them I'll halfway there.

I just had someone email me and ask if it was possible to use the Eye-Fi card in a remote location where there is no Internet access, and just upload to the PC. Sadly, I don't think it is quite possible with the current firmware. One of the first things the card does when it boots is check with the api.eye.fi server to see if the card has been registered. Without that step, I don't think it functions. Update! I'm wrong! :)

OK, I appear to have been completely wrong. Jason Justman pointed out that he's done just this. I tried to reproduce what he has done by blocking my Eye-Fi card from getting to the Internet on my router. It still managed to upload to the Eye-Fi manager on my PC (which was not blocked). I'd love to know if anyone can reproduce this or has any other tips.