Friday, May 23, 2008

Eye-Fi Power Consumption

I got a very small, 6 inch USB extension cable from my favorite cable store. Then, I chopped it up to get access to the power supply wire and clamp my cheapo ammeter on to it. I plugged a card reader into my PC with this contraption. Note that I'm measuring the USB power supply at ~5v, not the 3.3v that the card actually gets and that these are very unscientific measurements made with Radio Shack equipment.

My card reader alone: ~31 mA (unchanged if a normal SD card is simply plugged in)
After plugging Eye-Fi card in (no pending uploads): 56 mA (25 mA for the card)

All the numbers that I'll state from here on include only the amount that the Eye-Fi card is using after subtracting the amount for the reader.

Then, I took a picture to make the start start an upload and turn on its radio. The ammeter was bouncing all over the place, but it peaked at over 170 mA and I'd guess that the card averaged about 120 mA during the upload. The strange part is that, after the upload, the power usage only goes back to 40 mA. It never (at least in a couple of minutes) gets back to the 25 mA where it started. I wonder if the radio never gets completely turned off. Hmm.

My Nikon D50 has a 7.4v 1500 mAh battery. Let's be stupid and pessimistic and assume that the card is running at its very peak power of ~170 mA and round that 5v USB voltage up to 7.4v. That's still almost 9 hours of theoretical power. I can't possibly be seeing that effect on my battery life, right?

Is my methodology screwy? Any electrical engineers out there that want to tell me how much of an idiot I am? Email me.

Tuesday, May 20, 2008

New Eye-Fi Products

I was offline last week, attending a few family members' college graduations. While I was gone, Eye-Fi announced a few new products. Just wild conjecture, but I bet that the only difference in the cards is the firmware. I doubt we are seeing a hardware rev at all. In any case, looks like Eye-Fi has some good marketing folks! I love to see companies that put out solid incremental products like this.

The Eye-Fi Explore can also now log on to certain WiFi hotspots but apparently no T-Mobile or AT&T ones like at Starbucks. This is great progress and I hope to see these capabilities widening in the future, but this is definitely a baby step. More wild conjecture, but I bet that Wayport either already has or was able to implement a simplified log-on which the Eye-Fi card could perform. Remember, the card has very little RAM and a pretty tiny program storage area. It has no real web browser and can't do the SSL that most web sites use to secure authentication information.

The "Explore" can also evidently geotag your photos if the WiFi access point you are using has been mapped. According to this page, the tagging is done in the "Eye-Fi Service", which I assume means it happens after the upload from the card. I bet there's an extra bit of data sent along with the access point's MAC address during the upload now. I'd love to get some dumps of these uploads happening if anyone has one!

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.

Sunday, March 16, 2008

Eye-Fi Config Version 002

Infinitely more features!! Changes from 001:
  • Automatically discover mount point (works in Linux, definitely needs portability)
  • Actually list the log command-line option in the help
Download here

Monday, March 10, 2008

Tool Available for Download

I've uploaded an early version of my configuration tool so that others can play with it. It's available from my web site.

Please download any play with it and do not forget to report bugs back to me. At this stage, I'm sure there are plenty of them. I'm also happy to take patches if I'm missing features or you find behavior annoying.

Chris Davies' software is much more mature than mine, so I'll probably switch over to using his once he releases it. But, you can all at least play with my version for now.