Thursday, October 8, 2009

Eye-Fi releases source code

In March, Eye-Fi finally released source code for their copy of eCos and began complying with the GPL. Over in the message boards, Berend mentioned that nobody had ever asked for the source like that before. Citing the GPL in June 2008 in a private email I mentioned that "That's why I'm only asking for eCos itself". Oh, well. It's good to see that they're learning.

It's good to remember that this is just eCos and not the wireless driver or any of the custom Eye-Fi code that runs on the card. This is probably just what Eye-Fi got from Atheros after Atheros ported eCos to the AR6001. What this means practically is that we could probably build something to run on the card, but that the WiFi would not work. We'd have to either find some way to hack in bits of the original binaries, or find out how to operate the radio on our own.

On another front, I realized that each download of new binary firmware is unique. Even if you ask for the same firmware version and card MAC, you get a different image. The MAC or some other identifier must be recorded in the image because the card refuses to flash a new firmware unless it was downloaded with the correct MAC. Probably a "security" measure to help ensure that people do not flash the firmware for the higher end cards like the "Pro" on to the lower end cards.

Tuesday, March 3, 2009

New Eye-Fi models with video

Holy cow! I have impeccable timing. Eye-Fi just announced their cards with video support. I wonder what the write speed is on these new suckers.

Monday, March 2, 2009

Eye-Fi Card Speed

My D90 can record 720p video. A ~145 MB video I took was about 1:27 long which comes out to a bitrate of about 1.67 MB/s. Eye-Fi has apparently announced that they're working on video support. Cool!

The problem is that it does not seem to work. I began recording a video, but it only lasted 20 seconds or so. So, I decided to investigate, as usual. I ran a simple little command-line program to test a bunch of card speeds.


DEV=/dev/sdc1; umount $DEV; mount $DEV sdcard/; sync; date; time dd if=/dev/zero of=sdcard/zeros.txt bs=1024 count=$((1<<17)) conv=fdatasync; date; sync; date; rm sdcard/zeros.txt; umount sdcard/


I tried this procedure with 9 different SD cards and an el-cheapo multi card reader. which you can see below:

Eye-Fi
64MB SD from Garmin GPS4GB SDHC Patriot
2GB Crucial2GB Sandisk Ultra IINewer 2GB Sandisk Ultra II
4GB Kingston4GB SDHC "Polariod" PNY4GB SDHC Transcend

Unfortunately, the Eye-Fi card was the slowest by a large margin. This confirms what I suspected when the D90 cut off the video recording to the card after 20 seconds. The camera ran out of room in its own buffer since it could not write to the card fast enough. Dang.

The Eye-Fi is even slower than a 64MB MicroSD card that I got with my Garmin GPS, but have never used since it is so tiny. Of those 4GB SDHC cards, I'm pretty sure none of them were over $20; they're all super generic. The Sandisk cards were about $100 when I bought the first one over three years ago.

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.