<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3602435813834678741</id><updated>2011-11-27T16:50:21.725-08:00</updated><category term='linux'/><category term='gpl'/><category term='wine'/><category term='eyefi'/><title type='text'>Linux and Eye-Fi Hacking</title><subtitle type='html'>I'm working to get the Eye-Fi Manager software working under Wine and Linux, and eventually to get self-contained software to control the card.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-508939100330057637</id><published>2011-04-19T17:42:00.001-07:00</published><updated>2011-04-19T18:00:16.427-07:00</updated><title type='text'>Direct Mode Support</title><content type='html'>The good news: I believe I have direct mode working.  There are 3 new commands.  Two of them are big 'O' integer commands: an ASCII 'O' followed by a command-number byte (like an ioctl()), an argument length byte, and then a single byte for the number being fed in to the command.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;O[0x24]:  DIRECT_WAIT_FOR_CONNECTION: Corresponds to "wait for XX seconds for a device to connect" slider in Eye-Fi center.  The argument is a number of seconds.  0 means "direct mode off" and 0xff means "wait forever"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;O[0x25]: DIRECT_WAIT_AFTER_TRANSFER: Corresponds to "will stay on YY seconds after the last item is received" slider.  Set to 60 when direct mode is off.  0xff means "wait forever"&lt;/li&gt;&lt;li&gt;S: tells the card to "Start Direct Mode Network".  This is useful for pairing, and corresponds to a button of the same name in the Eye-Fi Center GUI.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The bad news is that I bricked a card doing this.  I think it happened just after I started direct mode, then asked the card to scan and then give me a list of configured networks.  The card never responded to another command, despite a number of reformats.  The odd part is that the official software does something in a very similar order.  This is not &lt;a href="http://dave-hansen.blogspot.com/2008/08/eye-fi-explore-and-release-005.html"&gt;the first time&lt;/a&gt; I've managed to break one of these cards, and I'm hoping the support will be as great as it was last time.&lt;br /&gt;&lt;br /&gt;I'm going to hold off on actually releasing the software for a bit.  I'm concerned about bricking other cards somehow.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-508939100330057637?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/508939100330057637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=508939100330057637' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/508939100330057637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/508939100330057637'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2011/04/direct-mode-support.html' title='Direct Mode Support'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4836784108240817291</id><published>2011-04-15T14:30:00.000-07:00</published><updated>2011-04-15T14:45:15.937-07:00</updated><title type='text'>"Mobile X2" Card with "Direct Uploads"</title><content type='html'>Eye-Fi released a &lt;a href="http://www.eye.fi/products/mobilex2"&gt;new card model&lt;/a&gt; recently.  They're calling it a "Mobile X2". From the &lt;a href="http://www.eye.fi/products/compare-cards"&gt;spec comparison&lt;/a&gt; it looks like it is just an 8GB version of the existing &lt;a href="http://www.eye.fi/products/connectx2"&gt;4GB Connect X2&lt;/a&gt;.  That is, it's probably the exact same hardware as the &lt;a href="http://www.eye.fi/products/prox2"&gt;Pro Card&lt;/a&gt;, but with tweaked firmware.&lt;br /&gt;&lt;br /&gt;The cool thing about these new cards is that they don't need an existing WiFi network at all, even an Ad-Hoc one.  They can evidently create their &lt;a href="http://www.eye.fi/how-it-works/features/direct-mode"&gt;own network&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The Eye-Fi X2 card will create its own Wi-Fi network and transfer to the free iPhone/iPad or Android app&lt;br /&gt;&lt;/blockquote&gt;I'm actually a bit surprised they are doing this.  I always figured that the Ad-Hoc support in the Pro card was one of its main selling points.  This blows that away completely.  I also hope &lt;a href="http://www.shuttersnitch.com/"&gt;Shutter Snitch&lt;/a&gt; gets support for the new mode, otherwise it's going to be a lot less useful going forward.&lt;br /&gt;&lt;br /&gt;It sounds like you'll need a firmware update next week and probably also have to enable the direct mode somehow.  I'll try that out as soon as they release the new firmware next week, and try to make sure I put support for it in &lt;a href="http://git.sr71.net/cgi-bin/gitweb.cgi?p=eyefi-config.git;a=summary"&gt;eyefi-config&lt;/a&gt;. &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4836784108240817291?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4836784108240817291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4836784108240817291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4836784108240817291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4836784108240817291'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2011/04/mobile-x2-card-with-direct-uploads.html' title='&quot;Mobile X2&quot; Card with &quot;Direct Uploads&quot;'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-9072017900188634021</id><published>2011-03-25T14:42:00.000-07:00</published><updated>2011-03-25T14:53:49.593-07:00</updated><title type='text'>New Release: 011</title><content type='html'>Someone was kind enough to send me a &lt;a href="http://www.eye.fi/products/prox2"&gt;Pro X2&lt;/a&gt; card, along with a &lt;a href="http://www.eye.fi/products/connectx2"&gt;plain X2&lt;/a&gt;.  &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Before, I only had a 4GB "Wi-Fi" card.  The new cards have some nice features, and this release adds support for a few of them, and few that I never got around to supporting before.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;--transfer-mode: print or change card transfer mode or =help to list modes&lt;/li&gt;&lt;li&gt;--wifi-radio  fetch wifi radio state, or turn it on and off&lt;/li&gt;&lt;li&gt;--endless:    fetch or set endless storage trigger percentage&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I'm also fairly sure at this point that the Ad-Hoc support in the "Pro" cards does not actually manifest in the card interface at all.  I believe it still requires a DHCP server on the network.  You use the same commands to add an Ad-Hoc network that you would to add a normal Infrastructure network.&lt;br /&gt;&lt;br /&gt;Go ahead and &lt;a href="http://sr71.net/projects/eyefi/eyefi-config-011.tar.gz"&gt;download the new release here&lt;/a&gt;, or &lt;a href="http://git.sr71.net/cgi-bin/gitweb.cgi?p=eyefi-config.git;a=shortlog"&gt;view the changelog&lt;/a&gt; if you want more details.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-9072017900188634021?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/9072017900188634021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=9072017900188634021' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9072017900188634021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9072017900188634021'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2011/03/new-release-011.html' title='New Release: 011'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-5187418863209556625</id><published>2011-03-20T13:46:00.000-07:00</published><updated>2011-03-20T14:22:10.499-07:00</updated><title type='text'>Transfer Mode Command</title><content type='html'>The Eye-Fi software has not run under WINE in quite a while.  That was disappointing because it's how I first reverse-engineered the commands.  But, I have a new and much simpler method now, and it's much less likely to break from future Eye-Fi software changes.&lt;br /&gt;&lt;br /&gt;I've now added a --transfer-mode option.  This "selective transfer" mode &lt;a href="http://support.eye.fi/upload-mode/"&gt;described here&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"Selective Share" is --transfer-mode=SELSHARE&lt;/li&gt;&lt;li&gt;"Selective Transfer" is --transfer-mode=SELUPLOAD&lt;/li&gt;&lt;li&gt;The default mode is automatic and it is specified with --transfer-mode=AUTO&lt;/li&gt;&lt;/ul&gt;I chose those names because they match what ends up coming out in the card's log. &lt;br /&gt;&lt;br /&gt;I haven't made a release yet, but this code is now available in the &lt;a href="http://git.sr71.net/cgi-bin/gitweb.cgi?p=eyefi-config.git;a=summary"&gt;git tree&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-5187418863209556625?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/5187418863209556625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=5187418863209556625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5187418863209556625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5187418863209556625'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2011/03/transfer-mode-command.html' title='Transfer Mode Command'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-7404684715113503521</id><published>2010-09-22T09:09:00.001-07:00</published><updated>2010-09-22T09:10:12.030-07:00</updated><title type='text'>New Mailing List</title><content type='html'>Somebody requested it, so here it is.  I also created a Google Code project for wiki space among other things.&lt;br /&gt;&lt;br /&gt;        &lt;table class="fontsize_25" cellpadding="2" cellspacing="0" border="0"&gt;&lt;tbody&gt;&lt;tr valign="baseline"&gt;   &lt;td nowrap="nowrap"&gt;Homepage:&lt;/td&gt;   &lt;td width="4" nowrap="nowrap" align="right"&gt; &lt;/td&gt;   &lt;td width="450" nowrap="nowrap"&gt;&lt;a href="http://groups.google.com/group/eyefi-config-discuss?lnk=gcimh"&gt;http://groups.google.com/group/eyefi-config-discuss&lt;/a&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="baseline"&gt;   &lt;td nowrap="nowrap"&gt;Group email:&lt;/td&gt;   &lt;td nowrap="nowrap" align="right"&gt; &lt;/td&gt;   &lt;td&gt;&lt;a href="mailto:eyefi-config-discuss@googlegroups.com"&gt;eyefi-config-discuss@googlegroups.com&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-7404684715113503521?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/7404684715113503521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=7404684715113503521' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7404684715113503521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7404684715113503521'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2010/09/new-mailing-list.html' title='New Mailing List'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-1908679495701956567</id><published>2010-08-12T16:44:00.000-07:00</published><updated>2010-08-12T16:46:32.496-07:00</updated><title type='text'>New Commands for disabling WiFi</title><content type='html'>I've managed to find a few commands that my D90 camera sends to my card.  I haven't quite made them suitable for public consumption yet, but I did commit a bit of the code to my &lt;a href="http://git.sr71.net/?p=eyefi-config.git;a=summary"&gt;git tree&lt;/a&gt;.  Take a look in &lt;a href="http://git.sr71.net/?p=eyefi-config.git;a=commit;h=00ba8a61d689fd972638995086fce23404a14694"&gt;this commit&lt;/a&gt; if you're interested in learning more.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-1908679495701956567?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/1908679495701956567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=1908679495701956567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/1908679495701956567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/1908679495701956567'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2010/08/new-commands-for-disabling-wifi.html' title='New Commands for disabling WiFi'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-382513752928681081</id><published>2010-02-04T08:23:00.001-08:00</published><updated>2010-02-04T08:31:05.101-08:00</updated><title type='text'>New Card Models (Pro, 4GB, etc...)</title><content type='html'>I just wanted to let everybody know that my software still works with the 4GB cards.   I have a 4GB "Home Video" card, and I was able to program it just fine with my software.  It claims to have the same firmware version that my 2GB card has.  I have not verified that the images are the same (or very similar).&lt;br /&gt;&lt;br /&gt;I'm pretty sure that the 4GB cards are very different internally than the 2GB cards.  I get ~6MB/sec write speeds, which is at least 3x what I got &lt;a href="http://dave-hansen.blogspot.com/2009/03/eye-fi-card-speed.html"&gt;before&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm not sure about the 8GB Pro card.  Is it just a 4GB card with more flash, or truly the 3rd-generation model?  Does it share firmware with the 4GB cards?  I also do not know how to program the Ad-hoc networks into it.  I believe that Ad-hoc networks will need to have static IPs at least, and I have no idea how to program that into the card.&lt;br /&gt;&lt;br /&gt;BTW, does anybody have the Eye-Fi manager working under WINE these days?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-382513752928681081?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/382513752928681081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=382513752928681081' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/382513752928681081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/382513752928681081'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2010/02/new-card-models-pro-4gb-etc.html' title='New Card Models (Pro, 4GB, etc...)'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-3683390376958560889</id><published>2009-10-08T09:15:00.001-07:00</published><updated>2009-10-08T09:31:56.291-07:00</updated><title type='text'>Eye-Fi releases source code</title><content type='html'>In March, Eye-Fi finally &lt;a href="http://support.eye.fi/support-resources/downloads/open-source-distribution/ecos-open-source-license/"&gt;released source code&lt;/a&gt; for their copy of eCos and began complying with the GPL.  Over in the &lt;a href="http://forums.eye.fi/viewtopic.php?f=10&amp;amp;t=866"&gt;message boards&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;It's good to remember that this is &lt;span style="font-style: italic;"&gt;just&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-3683390376958560889?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/3683390376958560889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=3683390376958560889' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3683390376958560889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3683390376958560889'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/10/eye-fi-releases-source-code.html' title='Eye-Fi releases source code'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-2450889777786344904</id><published>2009-03-03T08:25:00.000-08:00</published><updated>2009-03-03T08:29:15.183-08:00</updated><title type='text'>New Eye-Fi models with video</title><content type='html'>&lt;div style="text-align: left;"&gt;Holy cow!  I have &lt;a href="http://www.eye.fi/cards/explore/"&gt;impeccable&lt;/a&gt; &lt;a href="http://i.gizmodo.com/5163244/eye+fi-doubles-storage-and-adds-video-support"&gt;timing&lt;/a&gt;.  Eye-Fi just announced their cards with video support.  I wonder what the &lt;a href="http://dave-hansen.blogspot.com/2009/03/eye-fi-card-speed.html"&gt;write speed&lt;/a&gt; is on these new suckers.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-2450889777786344904?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/2450889777786344904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=2450889777786344904' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2450889777786344904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2450889777786344904'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/03/new-eye-fi-models-with-video.html' title='New Eye-Fi models with video'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8175056984874099716</id><published>2009-03-02T17:19:00.000-08:00</published><updated>2009-03-02T17:50:29.581-08:00</updated><title type='text'>Eye-Fi Card Speed</title><content type='html'>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  &lt;a href="http://www.pcmag.com/article2/0,2817,2337960,00.asp"&gt;has apparently announced&lt;/a&gt; that they're working on video support.  Cool!&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;br /&gt;DEV=/dev/sdc1; umount $DEV; mount $DEV sdcard/; sync; date; time dd if=/dev/zero of=sdcard/zeros.txt bs=1024 count=$((1&lt;&lt;17)) conv=fdatasync; date; sync; date; rm sdcard/zeros.txt; umount sdcard/&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I tried this procedure with 9 different SD cards and an el-cheapo multi card reader. which you can see below:&lt;br /&gt;&lt;br /&gt;&lt;table style="width: 520px; height: 73px; text-align: left; margin-left: auto; margin-right: auto;" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;Eye-Fi&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;64MB SD from Garmin GPS&lt;/td&gt;&lt;td style="text-align: center;"&gt;4GB SDHC Patriot&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;2GB Crucial&lt;/td&gt;&lt;td style="text-align: center;"&gt;2GB Sandisk Ultra II&lt;/td&gt;&lt;td style="text-align: center;"&gt;Newer 2GB Sandisk Ultra II&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;4GB Kingston&lt;/td&gt;&lt;td style="text-align: center;"&gt;4GB SDHC "Polariod" PNY&lt;/td&gt;&lt;td style="text-align: center;"&gt;4GB SDHC Transcend&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_vvy_2Tskyrg/SayJAHzqeTI/AAAAAAAA6Cs/iZ9fkWySO_Q/s1600-h/dsc_0001.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 279px;" src="http://1.bp.blogspot.com/_vvy_2Tskyrg/SayJAHzqeTI/AAAAAAAA6Cs/iZ9fkWySO_Q/s320/dsc_0001.jpg" alt="" id="BLOGGER_PHOTO_ID_5308768695951718706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;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.&lt;br /&gt;&lt;br /&gt;The Eye-Fi is even slower than a 64MB MicroSD card that I got with my &lt;a href="https://buy.garmin.com/shop/shop.do?pID=310#gpsmap60csx"&gt;Garmin GPS&lt;/a&gt;, 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.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8175056984874099716?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8175056984874099716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8175056984874099716' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8175056984874099716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8175056984874099716'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/03/eye-fi-card-speed.html' title='Eye-Fi Card Speed'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_vvy_2Tskyrg/SayJAHzqeTI/AAAAAAAA6Cs/iZ9fkWySO_Q/s72-c/dsc_0001.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-2055578706953271785</id><published>2009-02-27T09:54:00.000-08:00</published><updated>2009-02-27T10:15:29.928-08:00</updated><title type='text'>Eye-Fi and Nikon D90</title><content type='html'>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 &lt;a href="http://www.kenrockwell.com/nikon/d90.htm"&gt;D90&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I had read that the D90 (and the D60) would at least have some ability to detect Eye-Fi cards when inserted and do &lt;span style="font-style: italic;"&gt;something&lt;/span&gt; with them.  LarryG over on the &lt;a href="http://forums.eye.fi/viewtopic.php?f=8&amp;amp;t=298"&gt;Eye-Fi forums&lt;/a&gt; has a little more explanation of what happens:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;/ol&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://dave-hansen.blogspot.com/2008/05/eye-fi-power-consumption.html"&gt;roughly as much power&lt;/a&gt; as the SLR itself, so will enabling this option double my battery life?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-2055578706953271785?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/2055578706953271785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=2055578706953271785' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2055578706953271785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2055578706953271785'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/02/eye-fi-and-nikon-d90.html' title='Eye-Fi and Nikon D90'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8619652085941873163</id><published>2009-02-18T15:03:00.000-08:00</published><updated>2009-02-18T15:07:11.196-08:00</updated><title type='text'>Ad-Hoc Networks</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;somewhere&lt;/span&gt;.   If someone really, really needs to do this, I would simply suggest a portable and battery-powered access point such as &lt;a href="http://www.dlink.com/products/?pid=346"&gt;this one&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8619652085941873163?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8619652085941873163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8619652085941873163' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8619652085941873163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8619652085941873163'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/02/ad-hoc-networks.html' title='Ad-Hoc Networks'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-3733583502289067609</id><published>2009-02-17T09:35:00.000-08:00</published><updated>2009-02-17T09:37:46.716-08:00</updated><title type='text'>New Release: 008</title><content type='html'>&lt;h3 class="post-title entry-title"&gt; &lt;/h3&gt;  &lt;div class="post-body entry-content"&gt;Brad left a &lt;a href="http://dave-hansen.blogspot.com/2009/02/new-release-007.html?showComment=1234846800000#c2775169919367037497"&gt;comment with a great bug report&lt;/a&gt;.  As you can see &lt;a href="http://git.sr71.net/cgi-bin/gitweb.cgi?p=eyefi-config.git;a=commit;h=447da844448f85d9672ac17961d84fb75752f7e6"&gt;in gitweb&lt;/a&gt;, 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. &lt;br /&gt;&lt;br /&gt;http://sr71.net/projects/eyefi/eyefi-config-008.tar.gz &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-3733583502289067609?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/3733583502289067609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=3733583502289067609' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3733583502289067609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3733583502289067609'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/02/new-release-008.html' title='New Release: 008'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4713483810063650645</id><published>2009-02-05T13:01:00.000-08:00</published><updated>2009-02-05T13:03:04.469-08:00</updated><title type='text'>New Release: 007</title><content type='html'>I've removed the O_DIRECT usage since I got the #ifdefs wrong.  &lt;a href="http://lkml.org/lkml/2007/1/10/233"&gt;Linus says&lt;/a&gt; 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!&lt;br /&gt;&lt;br /&gt;http://sr71.net/projects/eyefi/eyefi-config-007.tar.gz&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4713483810063650645?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4713483810063650645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4713483810063650645' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4713483810063650645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4713483810063650645'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/02/new-release-007.html' title='New Release: 007'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-508941745198430573</id><published>2009-01-07T12:32:00.001-08:00</published><updated>2009-01-07T12:49:05.161-08:00</updated><title type='text'>Working Standalone Server</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;http://returnbooleantrue.blogspot.com/2009/01/eye-fi-standalone-server.html&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Anybody know of any tiny battery-powered 802.11 access points?  I bet one of &lt;a href="http://www.dlink.com/products/?pid=346"&gt;these&lt;/a&gt; plus one of &lt;a href="http://www.amazon.com/dp/B000UA8JRQ/ref=ar_gw_dp"&gt;these&lt;/a&gt; would be interesting.  I'll have to test Jeff's program with an isolated wireless network and see what happens.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-508941745198430573?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/508941745198430573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=508941745198430573' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/508941745198430573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/508941745198430573'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2009/01/working-standalone-server.html' title='Working Standalone Server'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-331902323885649340</id><published>2008-12-25T13:00:00.000-08:00</published><updated>2008-12-25T15:05:14.666-08:00</updated><title type='text'>Picasa Download Script</title><content type='html'>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 &lt;span style="font-family: courier new;"&gt;cat_file()&lt;/span&gt; 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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;http://sr71.net/projects/picasa/&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-331902323885649340?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/331902323885649340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=331902323885649340' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/331902323885649340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/331902323885649340'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/12/picasa-download-script.html' title='Picasa Download Script'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-3107133661857292340</id><published>2008-12-19T09:48:00.000-08:00</published><updated>2008-12-19T10:04:12.031-08:00</updated><title type='text'>Freestanding Server</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You take a picture, and dump it on your card&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;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.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Eye-Fi server looks at your preferences and uploads pictures to Picasa, Flickr or whatever you want.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;"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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-3107133661857292340?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/3107133661857292340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=3107133661857292340' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3107133661857292340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3107133661857292340'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/12/freestanding-server.html' title='Freestanding Server'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-9156239242534903005</id><published>2008-12-18T14:41:00.001-08:00</published><updated>2008-12-19T06:48:13.218-08:00</updated><title type='text'>Eye-Fi Config Release 006</title><content type='html'>Someone asked for this, so here you go!&lt;br /&gt;&lt;br /&gt;This basically just adds WEP support.  It only handles the WEP-128  keys specified as hex.  This was not hard to add since the EyeFi card has most of the smarts to do the network type selection internally.&lt;br /&gt;&lt;br /&gt;http://sr71.net/projects/eyefi/eyefi-config-006.tar.gz&lt;br /&gt;&lt;br /&gt;I still need to figure out how to get the firmware updated without going into Windows.  There' some experimental code in here, but it does not work.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-9156239242534903005?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/9156239242534903005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=9156239242534903005' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9156239242534903005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9156239242534903005'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/12/eye-fi-config-release-006.html' title='Eye-Fi Config Release 006'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-919989160075154957</id><published>2008-11-25T13:56:00.000-08:00</published><updated>2008-11-25T14:14:49.266-08:00</updated><title type='text'>Is the "Anniversary Edition" really SD or SDHC?</title><content type='html'>My "big" camera is a Nikon D50.  It is a wonderful camera, but it is getting a bit dated and only takes regular SD cards, not SDHC.  As I understand it, the SD &lt;span style="font-style: italic;"&gt;specification&lt;/span&gt; is limited to 2GB, but the hardware can handle a full 4GB of addressing.  The SD standards people artificially lowered the standard to 2GB either to move people to the SDHC standard faster or for some technical reason I don't yet understand.  Are there technical issues with some devices and 4GB FAT16 partitions?&lt;br /&gt;&lt;br /&gt;There is also evidently a requirement in the standard that  SDHC cards be &lt;a href="http://en.wikipedia.org/wiki/File_Allocation_Table"&gt;FAT32&lt;/a&gt;-formatted.  Older cameras (like the D50) can't read this filesystem even if it were present on a small capacity card.  The neat part of all of this is that some "4GB SDHC" cards are &lt;span style="font-style: italic;"&gt;actually&lt;/span&gt; plain old SD cards electrically and just rebadged as SDHC since a 4GB card isn't allowed to have the 'SD' logo.  What I'm saying here is all speculation on my part that I've pieced together from some very reliable web forums. :)&lt;br /&gt;&lt;br /&gt;There have been &lt;a href="http://www.robgalbraith.com/bins/multi_page.asp?cid=6007-7905"&gt;some reports&lt;/a&gt; that, if you get one of these cards,  simply formatting a 4GB FAT32 SDHC card as the older FAT16 will make it work in cameras like my D50.  I really wonder if this new &lt;a href="http://www.costco.com/Browse/Product.aspx?Prodid=11319004"&gt;Anniversary Edition&lt;/a&gt; card is one of these special beasts.  It would make sense for Eye-Fi to do this since "all" they'd have to do is replace the on board flash with a bigger chip and wouldn't have to change the card electrically to support true SDHC.  For $79 shipped at Costco, I just may have to find out!&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-919989160075154957?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/919989160075154957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=919989160075154957' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/919989160075154957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/919989160075154957'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/11/is-anniversary-edition-really-sd-or.html' title='Is the &quot;Anniversary Edition&quot; really SD or SDHC?'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8562743476813034676</id><published>2008-11-04T10:13:00.000-08:00</published><updated>2008-11-04T10:30:57.060-08:00</updated><title type='text'>Latest Progress</title><content type='html'>I have not been doing very much Eye-Fi hacking lately.  I do with I had been able to activate my new card without going into Windows, but that was really a one-time inconvenience.  Not nearly as bad as &lt;a href="http://apple.com/iphone/"&gt;some devices&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;that need constant plugging into Windows.  BTW, there's nothing especially wrong with Windows, I just don't like rebooting.&lt;br /&gt;&lt;br /&gt;I had a &lt;a href="http://catalog.belkin.com/IWCatProductPage.process?Product_Id=377018"&gt;Belkin N-1 Vision&lt;/a&gt; that turned out to be a pretty expensive ($179 when I bought it) piece of junk.  My first one locked up (bad hardware?), and my second one seems to be unable to do IPSec passthrough.  So, I just dropped in the Actiontec MI424-WR that came with my Verizon FiOS service.  When the Eye-Fi card tries to upload through it, both devices reset themselves!&lt;br /&gt;&lt;br /&gt;In all fairness, the Actiontec seems much more fragile than the Eye-Fi, and I do know that the Eye-Fi intentionally reboots sometimes to clean up transient error conditions.  That's fine behavior for the card since it reboots fast and you can still take pictures.  It is much less nice for a router to do that.&lt;br /&gt;&lt;br /&gt;I also stumbled upon &lt;a href="http://blog.makezine.com/archive/2008/11/patentbgone_inventor_mitc.html"&gt;a neat blog entry&lt;/a&gt; about the benefits of open source.  When I read it, I immediately thought of my little Eye-Fi card.  I truly hope some day our friends at Eye-Fi decide to seize upon the community of really clever people out there that would love to build upon their fantastic devices.&lt;br /&gt;&lt;br /&gt;Oh, and when is the Eye-Fi iPhone app going to be released?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8562743476813034676?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8562743476813034676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8562743476813034676' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8562743476813034676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8562743476813034676'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/11/latest-progress.html' title='Latest Progress'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-278254705328158483</id><published>2008-08-25T12:54:00.000-07:00</published><updated>2008-08-25T17:53:58.312-07:00</updated><title type='text'>Geotagging Works!</title><content type='html'>I took a picture earlier this morning, which wasn't geotagged.  I just took another and noticed that my AP had finally gotten into Skyhook's DB.  I submitted it last Tuesday and it took a bit less than a week.&lt;br /&gt;&lt;br /&gt;If you wonder what &lt;a href="http://picasaweb.google.com/hansendc/TakenOnAugust25th2008"&gt;this is&lt;/a&gt;, I've been making cables to convert my old RAZR chargers to charge the iPhone 3G.  The RAZR is a male USB Mini-B, so I need &lt;span style="text-decoration: underline;"&gt;female USB Mini-B&lt;/span&gt;&lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=AE10311-ND"&gt;&lt;/a&gt;  connectors which have been really hard to come by.  I've been using &lt;a href="http://www.flickr.com/photos/26227496@N06/2670560315/"&gt;this guy's&lt;/a&gt;  schematic to get the right voltages on the USB data pins so the iPhone will actually charge.&lt;br /&gt;&lt;br /&gt;P.S. Please no stalking! :)&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-278254705328158483?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/278254705328158483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=278254705328158483' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/278254705328158483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/278254705328158483'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/08/geotagging-works.html' title='Geotagging Works!'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-5457492657805512539</id><published>2008-08-18T21:01:00.000-07:00</published><updated>2008-08-18T21:12:15.892-07:00</updated><title type='text'>Zaurus Development</title><content type='html'>Someone loaned me a Sharp Zaurus SL-5600 so that I might try a port of my software to it.  I got an arm cross-compiler, but I can't even get "Hello World" running.  It just segfaults.  I bet I'm compiling for the wrong platform or something.  Oh, well.  I really need to get a NIC for this thing.  Should make development a lot easier.&lt;br /&gt;&lt;br /&gt;I also picked up an iPhone 3G, which got me thinking.  Seeing as at least a couple of the Eye-Fi employees have iPhones and that there's already a Mac OS port of the Eye-Fi manager software, I have to wonder if we'll be seeing an Eye-Fi iPhone  app some time.  The biggest sticking point is that neither the iPhone or the Eye-Fi card can act as a WiFi access point as far as I know, they can only join them.&lt;br /&gt;&lt;br /&gt;I also haven't been able to get Loki to work.  As far as I can tell, there's no Linux port.  Sigh...  I did submit my AP to their DB, though.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-5457492657805512539?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/5457492657805512539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=5457492657805512539' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5457492657805512539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5457492657805512539'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/08/zaurus-development.html' title='Zaurus Development'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-9022042595077329970</id><published>2008-08-14T18:38:00.000-07:00</published><updated>2008-08-14T18:57:17.659-07:00</updated><title type='text'>Eye-Fi Explore and release 005</title><content type='html'>My old classic Eye-Fi card broke after I squished it, plugged it about 30,000 times and cut a hunk of plastic out of it.  The guys at Eye-Fi replaced this "defective" (their words, not mine :) and to show they are swell folks, replaced it with one of the newfangled Eye-Fi Explore cards that do geotagging.  Thanks guys!  BTW, I don't consider it defective, &lt;span style="font-style: italic;"&gt;I&lt;/span&gt; consider it abused.&lt;br /&gt;&lt;br /&gt;I was able to do all of the card initialization in WINE.  It would not complete the final test step, but it works fine anyway.  I need to dig through those WINE logs and see if there's anything interesting in them.&lt;br /&gt;&lt;br /&gt;New observations:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I have two access points running with the same ESSID, but on different channels.  This works for my PCs, but made the card very mad.  It would not associate for long enough to upload anything.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The card comes from the factory without its EyeFi/{reqm,rspm,...} files.  The manager software must create them.  I created them with dd, and was able to use the card before I ran the manager software.  I also saw a 'EyeFiManufacturing' wireless network in the card log!&lt;/li&gt;&lt;li&gt;I added a network to the card before I registered it.  The card DHCP'd and tried to upload its pictures, but choked once it talked to the Eye-Fi server.  No surprise here, but it does open up the possibilities if someone ever reverse-engineers the server protocol.&lt;/li&gt;&lt;li&gt;I enabled geotagging, but it does not seem to work for me, yet.  Anybody have this working?  Anybody know of any quick ways to check &lt;a href="http://www.skyhookwireless.com/"&gt;Skyhooks's&lt;/a&gt; AP list?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I'm also pleased to announce Eye-Fi Configuration Tool &lt;a href="http://www.sr71.net/projects/eyefi/eyefi-config-005.tar.gz"&gt;Version 005&lt;/a&gt;.  This should fix the crashing bugs that some people were seeing.  My printf() function was screwed up and calling printf() instead of vprintf().  &lt;a href="git://git.sr71.net/eyefi-config.git"&gt;Git tree here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-9022042595077329970?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/9022042595077329970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=9022042595077329970' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9022042595077329970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9022042595077329970'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/08/eye-fi-explore-and-release-005.html' title='Eye-Fi Explore and release 005'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4454040705586409349</id><published>2008-07-13T20:17:00.000-07:00</published><updated>2008-07-13T20:19:56.284-07:00</updated><title type='text'>Git tree</title><content type='html'>Because someone asked, I've also put up a git tree.  I'm honestly not planning on putting out &lt;span style="font-weight: bold;"&gt;that&lt;/span&gt; many updates, but I figure I'll share anyway.&lt;br /&gt;&lt;br /&gt;http://git.sr71.net/cgi-bin/gitweb.cgi?p=eyefi-config.git;a=summary&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4454040705586409349?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4454040705586409349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4454040705586409349' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4454040705586409349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4454040705586409349'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/07/git-tree.html' title='Git tree'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-5328752629992148606</id><published>2008-07-13T10:04:00.000-07:00</published><updated>2008-07-13T10:07:53.084-07:00</updated><title type='text'>Eye-Fi Config Release 004</title><content type='html'>There are no new features or anything in here, but I wanted to at least share my recent work.  I put the file that I'm using for CHDK in here, and also some bits intended to help get this running on OSX.  Thanks got to Reed Wade for the work he's doing on OSX!&lt;br /&gt;&lt;br /&gt;http://sr71.net/projects/eyefi/eyefi-config-004.tar.gz&lt;br /&gt;&lt;br /&gt;This is completely untested because my Eye-Fi card is now completely dead.  I'll probably go get one of the new "Explore" cards at some point, but I'm without a card for now.&lt;br /&gt;&lt;br /&gt;A kind soul also lent me a Sharp Zaurus to try and get my software running on &lt;span style="font-style: italic;"&gt;it&lt;/span&gt;.  I'll let everyone know how that goes.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-5328752629992148606?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/5328752629992148606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=5328752629992148606' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5328752629992148606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5328752629992148606'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/07/eye-fi-config-release-004.html' title='Eye-Fi Config Release 004'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6384994742091769984</id><published>2008-06-20T10:57:00.001-07:00</published><updated>2008-06-20T11:02:13.818-07:00</updated><title type='text'>Shaky, but working again</title><content type='html'>I got the card running again with the volume serial number 'AA52-6922'.  I guess that's how the Eye-Fi manager actually finds the card, rather than looking for the EyeFi/r* files like my software has been.  Anybody know offhand how to find this stuff in Linux?&lt;br /&gt;&lt;br /&gt;I also got a request to make my manager software work on OSX.  I'd love to do that, but I don't have a Mac.  If anyone wants to give me ssh access to one or something, I'd be happy to give it a shot.  Shouldn't be more than an hour or two of work, as long as there are development tools around that I can use.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6384994742091769984?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6384994742091769984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6384994742091769984' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6384994742091769984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6384994742091769984'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/shaky-but-working-again.html' title='Shaky, but working again'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-633670512155330821</id><published>2008-06-17T10:02:00.000-07:00</published><updated>2008-06-17T10:11:50.554-07:00</updated><title type='text'>Even the Eye-Fi Manager Can't Find the Card</title><content type='html'>I think all of my formatting and messing with the card made it unrecognizable from the Eye-Fi Manager's point of view:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;06/14/2008 13:28:35 000000B4 INFO    Scanning initial drives...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;06/14/2008 13:28:35 000000B4 INFO    Not Eye-Fi Volume serial number&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;06/14/2008 13:28:35 000000B4 INFO    Not Eye-Fi Volume serial number&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;06/14/2008 13:28:35 000000B4 INFO    Drive scan is complete...&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;Could someone who has the card running in windows do a 'dir' of the Eye-Fi card for me?  I think I wiped out its serial number and need to recreate it.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;c:\&gt; dir e:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Volume in drive E...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Volume Serial Number is XXXX-XXXX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Could you send me the X's?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-633670512155330821?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/633670512155330821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=633670512155330821' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/633670512155330821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/633670512155330821'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/even-eye-fi-manager-cant-find-card.html' title='Even the Eye-Fi Manager Can&apos;t Find the Card'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4412812185117956778</id><published>2008-06-13T15:23:00.000-07:00</published><updated>2008-06-13T15:26:53.519-07:00</updated><title type='text'>Busted Card?</title><content type='html'>Well, I think I've finally worn out my Eye-Fi card.  It is throwing all kinds of I/O errors and getting corrupted filesystems pretty regularly.  It won't even read in the camera sometimes.  This was happening even before I carved the hunk out of it, yesterday.  Oh, well... maybe I'll try one of the new ones when they come out.  I think I've abused this one enough. :)&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4412812185117956778?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4412812185117956778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4412812185117956778' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4412812185117956778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4412812185117956778'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/busted-card.html' title='Busted Card?'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-2124432283683556513</id><published>2008-06-12T17:22:00.000-07:00</published><updated>2008-06-12T17:51:28.203-07:00</updated><title type='text'>Working CHDK Code</title><content type='html'>Well, it didn't take long, but I have &lt;a href="http://chdk.wikia.com/wiki/FAQ"&gt;CHDK&lt;/a&gt; running accessing the Eye-Fi Card.  For now, I just had it dump the firmware version string, but the sky's the limit!  I should have it scanning and adding networks in no time.&lt;br /&gt;&lt;br /&gt;As a commenter noted, &lt;a href="http://chdk.wikia.com/wiki/"&gt;CHDK&lt;/a&gt; requires that the lock switch be flipped before it can be run off an SD card.  The Eye-Fi has no such switch.  So, I took a chunk out of mine with an &lt;a href="http://www.xacto.com"&gt;X-Acto Knife&lt;/a&gt;.  &lt;a href="http://sr71.net/%7Edave/projects/eyefi/pictures/"&gt;Here are some pictures&lt;/a&gt;.  I've also taken to sticking clumps of electrical tape over my new hole if I need to stick the card back in a non-Canon camera.&lt;br /&gt;&lt;br /&gt;I also stuck some foil into the Eye-Fi reader to fake the lock tab because, with that chunk out, all the readers think the card is read-only.  I could have done that with any reader, but my "official" Eye-Fi one was already taken apart.  I wonder if I can override that in software.  Anybody know offhand?&lt;br /&gt;&lt;br /&gt;It took hacking my &lt;a href="http://sr71.net/%7Edave/projects/eyefi"&gt;Eye-Fi Config&lt;/a&gt; program up quite a bit to keep it from using some of the facilities like abort() that are not available in CHDK.  But, most of the code essentially stayed the same, and I integrated it pretty well.  Now I just need to get some menus coded up to navigate the various options.&lt;br /&gt;&lt;br /&gt;Now that I have bits of aluminum foil, electrical tape, razor blades ant toothpicks (for digging bits of tape out of SD card slots) I &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; feel like &lt;a href="http://en.wikipedia.org/wiki/MacGyver"&gt;MacGyver&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-2124432283683556513?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/2124432283683556513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=2124432283683556513' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2124432283683556513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2124432283683556513'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/working-chdk-code.html' title='Working CHDK Code'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4513243682906085680</id><published>2008-06-12T12:15:00.000-07:00</published><updated>2008-06-12T12:19:07.179-07:00</updated><title type='text'>CHDK Port</title><content type='html'>Anybody out there ever use &lt;a href="http://chdk.wikia.com"&gt;CHDK&lt;/a&gt;?  It is an open replacement firmware for Canon cameras.  I'm getting a Canon SD870IS, and there is evidently a port to that model.  I think I'll have to port my &lt;a href="http://sr71.net/projects/eyefi/"&gt;Eye-Fi Config&lt;/a&gt; software over to it and see if I can get it to work.  That should allow me to add access points out in the field.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4513243682906085680?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4513243682906085680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4513243682906085680' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4513243682906085680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4513243682906085680'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/chdk-port.html' title='CHDK Port'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-65259652483193589</id><published>2008-06-11T13:18:00.000-07:00</published><updated>2008-06-11T13:21:48.736-07:00</updated><title type='text'>Status File</title><content type='html'>I think I just figured out how the &lt;a href="http://www.eye.fi/news/2008/01/30/eye-fi-nikon-first-camera-enhanced-for-eye-fi-card/"&gt;Eye-Fi and the D60 talk to each other&lt;/a&gt;.  There's a one byte file on the card, next to the RSPM, RSPC... files called simply 'status'.  You need to create it, but once it is there, the card will fill things into it.&lt;br /&gt;&lt;br /&gt;When no pictures are pending for upload, it has a 0 in it.  I've also seen it at 4 and 5.  My guess is that 4 means "trying to upload" and 5 means "failed to upload, not trying any more".  I'll have to explore more to be sure.&lt;br /&gt;&lt;br /&gt;The D60 can read this file and keep the card powered up as long as the card is trying to upload.  As soon as the upload finished, a 0 appears in the file, and the D60 knows to power it down.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-65259652483193589?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/65259652483193589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=65259652483193589' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/65259652483193589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/65259652483193589'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/status-file.html' title='Status File'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6908485907933728745</id><published>2008-06-02T11:25:00.000-07:00</published><updated>2008-06-02T11:35:19.090-07:00</updated><title type='text'>More on Power Consumption</title><content type='html'>I attempted to splice my ammeter directly between my D50's battery and the camera with some electrical tape and aluminum foil (seriously).  It worked, but the ammeter dropped ~0.6v out of 7.4v that the battery puts out, and that was enough to keep the camera from being able to take pictures, but it could operate in standby.&lt;br /&gt;&lt;br /&gt;In any case, the camera itself draws about as much current as the EyeFi card does.  I think the real power sucking &lt;a href="http://support.eye.fi/compatibility/optimize/nikon/d50/"&gt;this&lt;/a&gt;.  The camera (either off or in "standby") with the "Meter-Off" takes a very small amount of power.  Powered on, it takes probably 40 or 50 times more.  Following those &lt;a href="http://support.eye.fi/compatibility/optimize/nikon/d50/"&gt;EyeFi directions&lt;/a&gt; means that you put your camera into this higher power consumption mode for 30 &lt;span style="font-style: italic; font-weight: bold;"&gt;minutes&lt;/span&gt; if you take one picture instead of 16 seconds like it might have before.&lt;br /&gt;&lt;br /&gt;So, my guess is that the power consumption comes more from the camera itself than from the EyeFi card.  But, the only reason to put your camera in that mode is &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;for&lt;/span&gt;&lt;/span&gt; the card in the first place.  Anyway, I bet this is exactly why &lt;a href="http://www.eye.fi/news/2008/01/30/eye-fi-nikon-first-camera-enhanced-for-eye-fi-card/"&gt;EyeFi and Nikon are working together&lt;/a&gt; on the D60 and EyeFi card integration.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6908485907933728745?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6908485907933728745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6908485907933728745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6908485907933728745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6908485907933728745'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/06/more-on-power-consumption.html' title='More on Power Consumption'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-9187154034751012703</id><published>2008-05-23T17:59:00.000-07:00</published><updated>2008-05-23T18:27:20.481-07:00</updated><title type='text'>Eye-Fi Power Consumption</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_vvy_2Tskyrg/SDdox_b1a6I/AAAAAAAADwU/Gt6eS5qgztM/s1600-h/DSC_9485.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_vvy_2Tskyrg/SDdox_b1a6I/AAAAAAAADwU/Gt6eS5qgztM/s320/DSC_9485.JPG" alt="" id="BLOGGER_PHOTO_ID_5203743102500957090" border="0" /&gt;&lt;/a&gt;I got a very small, 6 inch USB extension cable from my &lt;a href="http://www.pchcables.com/"&gt;favorite cable store&lt;/a&gt;.  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.&lt;br /&gt;&lt;br /&gt;My card reader alone: ~31 mA (unchanged if a normal SD card is simply plugged in)&lt;br /&gt;After plugging Eye-Fi card in (no pending uploads): 56 mA (25 mA for the card)&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;My &lt;a href="http://www.kenrockwell.com/nikon/d50.htm"&gt;Nikon D50&lt;/a&gt; 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?&lt;br /&gt;&lt;br /&gt;Is my methodology screwy?  Any electrical engineers out there that want to tell me how much of an idiot I am?  &lt;a href="mailto:dave@sr71.net"&gt;Email me.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-9187154034751012703?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/9187154034751012703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=9187154034751012703' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9187154034751012703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9187154034751012703'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/05/eye-fi-power-consumption.html' title='Eye-Fi Power Consumption'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_vvy_2Tskyrg/SDdox_b1a6I/AAAAAAAADwU/Gt6eS5qgztM/s72-c/DSC_9485.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-68951284837264408</id><published>2008-05-20T10:55:00.000-07:00</published><updated>2008-05-20T11:19:43.877-07:00</updated><title type='text'>New Eye-Fi Products</title><content type='html'>I was offline last week, attending a few family members' college graduations.  While I was gone, Eye-Fi &lt;a href="http://www.eye.fi/products/"&gt;announced a few new products&lt;/a&gt;.  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.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.eye.fi/products/explore/"&gt;Eye-Fi Explore&lt;/a&gt; can also now log on to &lt;a href="http://www.eye.fi/services/hotspot/"&gt;certain WiFi hotspots&lt;/a&gt; but apparently no T-Mobile or AT&amp;amp;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 &lt;a href="http://wayport.know-where.com/wayport/"&gt;Wayport&lt;/a&gt; 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 &lt;a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;SSL&lt;/a&gt; that most web sites use to secure authentication information.&lt;br /&gt;&lt;br /&gt;The "Explore" can also evidently &lt;a href="http://www.eye.fi/services/geotagging/"&gt;geotag&lt;/a&gt; your photos if the WiFi access point you are using has been mapped.  According to &lt;a href="http://www.eye.fi/services/geotagging/"&gt;this page&lt;/a&gt;, 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!&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-68951284837264408?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/68951284837264408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=68951284837264408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/68951284837264408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/68951284837264408'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/05/new-eye-fi-products.html' title='New Eye-Fi Products'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4541619379736633351</id><published>2008-04-22T12:36:00.000-07:00</published><updated>2008-04-22T12:37:48.974-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Eye-Fi on Vacation</title><content type='html'>I just returned from a lovely vacation in &lt;a href="http://en.wikipedia.org/wiki/Playa_del_Carmen"&gt;Playa del Carmen&lt;/a&gt;, Mexico.  The &lt;a href="http://picasaweb.google.com/hansendc/Playa"&gt;hotel&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;Why?  Well, I promised my lovely wife that the laptop would stay in its bag except for checking flights (we were &lt;a href="http://blog.oregonlive.com/breakingnews/2008/03/american_airlines_check_of_md8.html"&gt;affected by American's MD-80 issues&lt;/a&gt;).  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 &lt;a href="http://support.eye.fi/faq/general/#faq-352"&gt;the FAQ&lt;/a&gt; I do seem to feel the battery life shorten &lt;span style="font-style: italic;"&gt;significantly&lt;/span&gt; with the card in there.  I wish I had an A/C adapter and an ammeter for my camera to measure this.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;That's really why I'd love to hack the firmware.  I could customize the card for &lt;span style="font-style: italic;"&gt;me&lt;/span&gt; and my own perverted personal use like I do with my kernel.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4541619379736633351?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4541619379736633351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4541619379736633351' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4541619379736633351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4541619379736633351'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/04/eye-fi-on-vacation.html' title='Eye-Fi on Vacation'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-7565144006745819188</id><published>2008-04-21T15:05:00.000-07:00</published><updated>2008-04-21T15:09:10.170-07:00</updated><title type='text'>Eye-Fi Config Version 003</title><content type='html'>New Features since 002:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;use standalone crypto implementation for PKCS#5 from wpa_passphrase.  Keeps us from having to depend on running wpa_passphrase with system()&lt;/li&gt;&lt;li&gt;better error reporting when mount points can not be found&lt;/li&gt;&lt;li&gt;fixed an error with eyefi_mount[] getting set when there is no real card there&lt;/li&gt;&lt;li&gt;moved card initialization order around so that it can actually use debugging from -d flag&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://sr71.net/projects/eyefi/"&gt;Download here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-7565144006745819188?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/7565144006745819188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=7565144006745819188' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7565144006745819188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7565144006745819188'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/04/eye-fi-config-version-003.html' title='Eye-Fi Config Version 003'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-808316616989373105</id><published>2008-04-21T12:19:00.000-07:00</published><updated>2008-04-21T14:57:19.028-07:00</updated><title type='text'>Booting the Eye-Fi Firmware</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;another&lt;/span&gt; Redboot to load the Eye-Fi firmware image and run it, them I'll halfway there.&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;quite&lt;/span&gt; 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! :)&lt;br /&gt;&lt;br /&gt;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 &lt;a href="mailto:dave@sr71.net"&gt;love to know&lt;/a&gt; if anyone can reproduce this or has any other tips.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-808316616989373105?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/808316616989373105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=808316616989373105' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/808316616989373105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/808316616989373105'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/04/booting-eye-fi-firmware.html' title='Booting the Eye-Fi Firmware'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-7446983923716287844</id><published>2008-03-16T13:17:00.000-07:00</published><updated>2008-03-16T13:20:35.819-07:00</updated><title type='text'>Eye-Fi Config Version 002</title><content type='html'>Infinitely more features!!  Changes from 001:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Automatically discover mount point (works in Linux, definitely needs portability)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Actually list the log command-line option in the help&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://sr71.net/projects/eyefi/"&gt;Download here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-7446983923716287844?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/7446983923716287844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=7446983923716287844' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7446983923716287844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7446983923716287844'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/03/eye-fi-config-version-002.html' title='Eye-Fi Config Version 002'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-642309254805322509</id><published>2008-03-10T14:36:00.000-07:00</published><updated>2008-03-10T14:49:56.485-07:00</updated><title type='text'>Tool Available for Download</title><content type='html'>I've uploaded an early version of my configuration tool so that others can play with it.  It's available from &lt;a href="http://sr71.net/projects/eyefi/"&gt;my web site.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please download any play with it and do not forget to &lt;a href="mailto:dave@sr71.net"&gt;report bugs back to me&lt;/a&gt;.  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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-642309254805322509?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/642309254805322509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=642309254805322509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/642309254805322509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/642309254805322509'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/03/tool-available-for-download.html' title='Tool Available for Download'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-5748254394024535854</id><published>2008-03-09T18:50:00.000-07:00</published><updated>2008-03-09T18:49:23.594-07:00</updated><title type='text'>Really sneaky card snooping</title><content type='html'>I just did something I thought was pretty neat.  I was trying to validate that my approach of dumping the card log was OK.  This is mostly because I get some gunk out of there sometimes, and it just doesn't look like completely correct data, like I'm missing something.  It is hard to do an apples-to-apples comparison with the official software logs because the log on the card is constantly being written, and you can never fetch the exact same data twice. &lt;br /&gt;&lt;br /&gt;So, I turned off all the file &lt;span style="font-weight: bold; font-style: italic;"&gt;writing&lt;/span&gt; in my control application.  Then, I started it up like normal and told it to do a log dump.  It sat in its loop, waiting to get the control sequence that it never wrote back from the card.  (Remember that the manager writes a number to a file, then expects to get that same number back when the command is done).  It'll never get out of that loop, right?  Well, no.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;imultaneously&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;I told the manager to dump the card's log.  My software sat there and read the files along with the manager, but I let the manager do all the writing.  My software walked along in lock step with the manager as it went about its business dumping the entire log.  This let my software do the reading, but the official software do the writing (and its own reading).&lt;br /&gt;&lt;br /&gt;What I ended up with was two virtually identical logs, except for the last byte, which my software truncated.  I need to go fix that now.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-5748254394024535854?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/5748254394024535854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=5748254394024535854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5748254394024535854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/5748254394024535854'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/03/really-sneaky-card-snooping.html' title='Really sneaky card snooping'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8440226843731611754</id><published>2008-03-07T08:50:00.000-08:00</published><updated>2008-03-07T13:13:15.884-08:00</updated><title type='text'>Handling corrupt JPEGs</title><content type='html'>If you haven't it figured out, yet, I'm lazy.  But, I've been taking my card out of the PC reader and putting it in my camera to take a picture every time I want to get the card to go onto the network.  I decided to just create a JPEG on the card instead of actually taking pictures.  The quickest way to do that was just to dd some random gunk into a JPEG like this:&lt;br /&gt;&lt;pre&gt;    dd if=/dev/urandom of=/media/EYE-FI/dcim/100dchef/dsc_0000.jpg&lt;/pre&gt;That works, technically.  The card even tries to upload it.  But, the server gets a bit annoyed because, somehow, I guess random data isn't a valid JPEG very often. :)&lt;br /&gt;&lt;pre&gt;[00:54] Starting to upload "/public/DCIM/100DCHEF/DSC_0000.JPG"...&lt;br /&gt;[00:54] Server has 0 of 77312 bytes for DSC_0000.JPG.tar (file ID 779166).&lt;br /&gt;[00:55] Uploaded 77312 bytes for DSC_0000.JPG.tar. Waiting for the response...&lt;br /&gt;[00:55] Probing for listener at 10.6.0.60:59278.&lt;br /&gt;[00:56] Returning from upload function with error 28.&lt;br /&gt;[00:56] Starting to upload "/public/DCIM/100DCHEF/DSC_0000.JPG"...&lt;br /&gt;...&lt;/pre&gt;It will apparently sit in that loop for quite a while.  It did until I stopped it by deleting the picture.  I bet the card does not quite have the resources to validate JPEGs itself, so it just uploads the raw files to the server.  The server returns with that "error 28" and the persistent little card retries.&lt;br /&gt;&lt;br /&gt;It might be nice to have a limit on these retries.  But, I don't think it's quite that simple.  You &lt;span style="font-style: italic;"&gt;want&lt;/span&gt; the card to be persistent.  Wireless isn't exactly a lossless transmission medium, and its bound to have problems uploading from time to time.  It's a matter of figuring out when to retry and how much.  It might be reasonable, though, to have some special handling of corrupt files.  TCP should keep the files consistent during transmission, and I would imagine that most of the corrupt files that the server sees are also corrupt files on the card.  There isn't much reason to keep trying to upload these.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8440226843731611754?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8440226843731611754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8440226843731611754' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8440226843731611754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8440226843731611754'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/handling-corrupt-jpegs.html' title='Handling corrupt JPEGs'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6988521961189682865</id><published>2008-03-05T09:00:00.000-08:00</published><updated>2008-03-05T09:41:32.997-08:00</updated><title type='text'>Card Registration in WINE</title><content type='html'>I realized the other day that I'd left out a critical portion of the whole process: card registration.  You still need the EyeFi-supplied software to register the card for the first time, or to add and remove online services.  It might be nice in the future if EyeFi could make registering or adding and removing photo services a web-only procedure that didn't require running the manager software at all.  I'm pretty sure the card doesn't actually get consulted when you change the web services, so this should be possible in theory.&lt;br /&gt;&lt;br /&gt;I deleted my account, and recreated it.  Interestingly, the software didn't to anything to the card when the account was deleted.  That seems to indicate to me that all of the smarts about the card registration are on the EyeFi API server.  The manager software doesn't do anything like tell the &lt;span style="font-style: italic;"&gt;card&lt;/span&gt; when it is not registered any more. The card can figure that out on its own from the server.&lt;br /&gt;&lt;br /&gt;This is supported by the fact that the very first thing the card does after it gets power or sees a new picture is do a DNS query for api.eye.fi, then POSTs some XML to it with its MAC address and a field called "cnonce" that looks like an MD5.  &lt;a href="http://www.informit.com/articles/article.aspx?p=1177111"&gt;These folks&lt;/a&gt; have looked into how this works in more detail.&lt;br /&gt;&lt;br /&gt;I wouldn't mind getting my hands on another brand-new card to see exactly what the card's behavior is when it is fresh out of the box.  I wasn't smart enough to trace it from the beginning.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6988521961189682865?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6988521961189682865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6988521961189682865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6988521961189682865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6988521961189682865'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/card-registration-in-wine.html' title='Card Registration in WINE'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4160759964500345404</id><published>2008-03-04T16:14:00.000-08:00</published><updated>2008-03-04T16:23:31.203-08:00</updated><title type='text'>Interesting EyeFi Articles</title><content type='html'>Here are &lt;a href="http://www.informit.com/articles/article.aspx?p=1174944"&gt;a couple of&lt;/a&gt;  &lt;a href="http://www.informit.com/articles/article.aspx?p=1177111"&gt;articles&lt;/a&gt; about the EyeFi card from a security researcher's point of view.  They're very interesting and do make a few good points about how the card functions and what a few of its limitations are.  It definitely taught me a few things about how the card works.&lt;br /&gt;&lt;br /&gt;They also make the point that the EyeFi developers "get it" when it comes to security.  That's very high praise, and I'm very glad to hear that they've been so responsive. &lt;br /&gt;&lt;br /&gt;Thanks for the links, Ben!&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4160759964500345404?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4160759964500345404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4160759964500345404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4160759964500345404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4160759964500345404'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/03/interesting-eyefi-articles.html' title='Interesting EyeFi Articles'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8311518261574227189</id><published>2008-02-24T16:30:00.000-08:00</published><updated>2008-02-26T10:24:46.787-08:00</updated><title type='text'>Mad card</title><content type='html'>During my "add network" testing, I screwed up the command a couple of times by putting the network key in the wrong place.  This effectively put random gunk in the "key length" field and caused all sorts of fun.  The card got a bit warm and eventually, I got this in the logs:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[08:51] IEEE 802.1X RX: version=1 type=3 length=95&lt;br /&gt;[08:51]   EAPOL-Key type=254&lt;br /&gt;[08:51] WPA: RX message 1 of 4-Way Handshake from 00:11:95:18:... (ver=1)&lt;br /&gt;[08:51] WPA: Sending EAPOL-Key 2/4&lt;br /&gt;[08:53] Disconnected from WLAN (reason = 4).&lt;br /&gt;[08:53] Done scanning for new photos. Uploads not pending.&lt;br /&gt;[08:53]   EAPOL-Key type=254&lt;br /&gt;[08:54] Done scanning for all photos. Uploads not pending.&lt;br /&gt;[08:54] Connection dropped (previous state is 2)&lt;br /&gt;[08:54] Connecting to WLAN "bcdefghijkl"...&lt;br /&gt;[00:00] Eye-Fi firmware 1.0741 Feb 15 2008 17:13:41 started, hardware revision 1, 2016768/32768 KB storage.&lt;br /&gt;[00:00] Card was reset due to an exception or assertion failure at PC = 0x800029f4. Dump saved.&lt;br /&gt;[00:03] 11216 bytes allocated, 34524 bytes free (34524 bytes largest)&lt;br /&gt;[00:03] Card is in online and desktop transfer mode (timestamp 1203796494).&lt;br /&gt;&lt;/pre&gt;I wonder if it needs a bit more sanity checking when it is parsing network add data.  Although, I can't really fault it for having trouble when I poke basically random data into it.  It's really cool that it does recover so nicely.&lt;br /&gt;&lt;br /&gt;In any case, I do have add network working quite reliably now.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8311518261574227189?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8311518261574227189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8311518261574227189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8311518261574227189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8311518261574227189'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/mad-card.html' title='Mad card'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-8181133022502388443</id><published>2008-02-24T14:31:00.001-08:00</published><updated>2008-02-24T15:02:46.541-08:00</updated><title type='text'>Dump Log Command</title><content type='html'>If your EyeFi card is malfunctioning and you contact support, they'll likely ask you to dump the card's log.  You can do this from the tray icon in Windows.&lt;br /&gt;&lt;br /&gt;The first step in dumping a log is issuing an 'o' command.  The 'o' command is the EyeFi's own ioctl().  It is a multiplexed command that can do several things depending on the byte after the 'o'.  0x1 seems to fetch the card's MAC address, for instance.  An "o 0x7" command is always issued right before the log is dumped.  It always (as far as I have seen) returns 0x00010000.  That happens to be the length of the log: ~64k.  But, the RSPM file is only 16k in length.  So, how do we dump a 64k log 16k at a time?&lt;br /&gt;&lt;br /&gt;'m' is the log dump command.  It looks like this:&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;struct dump_log {&lt;br /&gt;    char cmd; // 'm'&lt;br /&gt;    u32 offset;&lt;br /&gt;};&lt;br /&gt;&lt;/blockquote&gt;The card's MIPS cpu runs in &lt;a href="http://en.wikipedia.org/wiki/Endianness"&gt;big-endian&lt;/a&gt; mode (MIPS is bi-endian), so that offset needs to be byte-swapped if you're running the control software on an x86 machine.&lt;br /&gt;&lt;br /&gt;The result in RSPM is all ASCII, except for the first 8 bytes for offset 0;  I thought these were garbage for a while, but when I started comparing the logs to those obtained from Windows I realized that my logs were shifted around.  The end of my logs didn't contain the latest entry; it was somewhere in the middle.  It turns out that those first 8 bytes are actually two 4-byte numbers giving two offsets into the log data.  The log data returned from this command are actually a circular buffer and those 8 bytes specify its start and end.  The log file actually begins and ends in the &lt;span style="font-style: italic;"&gt;middle&lt;/span&gt; of the buffer.  So, the data that comes back from the card after issuing 4 of those 'm' commands looks like this:&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;struct log_buf {&lt;br /&gt;    u32 log_end_offset;&lt;br /&gt;    u32 log_start_offset;&lt;br /&gt;    char data[16384*4-8];&lt;br /&gt;};&lt;/blockquote&gt;There was one last thing.  The logs I got back were a bit smaller than the Windows logs.  That's because, coming back from the card, the data has UNIX-style carriage returns.  But, the manager turns them into DOS-style before writing the file.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-8181133022502388443?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/8181133022502388443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=8181133022502388443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8181133022502388443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/8181133022502388443'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/dump-log-command.html' title='Dump Log Command'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6723618002758958258</id><published>2008-02-24T11:46:00.000-08:00</published><updated>2008-02-24T14:31:16.634-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Add Network Working</title><content type='html'>As I said, I've been playing with Chris Davies' software a bit.  I just got the 'a' command working for the first time, which is the add network command.  It's a lot more simple than I thought a first.  It's a real advantage decoding this stuff when you have so much smart logic on the card.&lt;br /&gt;&lt;br /&gt;Most of what we first thought were complex encodings for adding the card appear to really just be garbage left in memory from previous operations.  Even watching the Windows software after a log is dumped, you sometimes see the log data come back in the results of subsequent commands.  This makes things a bit harder to decode and it would be really nice if the card zeroed things out, first. &lt;br /&gt;&lt;br /&gt;Anyway, in the case of add network, the command is a struct like this:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;struct add_net {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    char cmd; // always 'a'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    char net_name_len;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    char net_name[32]; // always null padded&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    char net_password_len;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    char net_password_hex[32];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;};&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;Notice that there isn't a field for the encryption type, channel, MAC address of the AP or anything.  The card evidently figures this all out internally, which is really nice.&lt;br /&gt;&lt;br /&gt;Oh, and you know how you actually have to let the manager software successfully test for a network before you can add it?  I think that's a bit of a disadvantage sometimes.  Like if you're going over to your Aunt Betty's house and you know her essid before you go, you can't program it into the card in advance.  You would need to be there before you can add it.  This is a pretty user-friendly feature because it ensures that people don't mistakenly add networks and get confused about why it never works when they just entered the password wrong.  I think generally this is way nicer than what I have on my desktop today.&lt;br /&gt;&lt;br /&gt;Well, that feature looks to actually be implemented in the manager software, not the card.  I believe you can just issue an 'add' command to the card without actually testing it, first.  The manager software just happens to always test it in advance.  It might be nice to have a "force-add" feature in the future.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6723618002758958258?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6723618002758958258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6723618002758958258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6723618002758958258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6723618002758958258'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/add-network-working.html' title='Add Network Working'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-979983358280669785</id><published>2008-02-22T17:00:00.001-08:00</published><updated>2008-02-22T17:11:42.485-08:00</updated><title type='text'>The lights go on</title><content type='html'>OK, I've been stabbing in the dark on the OS all day, but I think I have it now.  No, really.  Really. &lt;br /&gt;Check out &lt;a href="http://www.atheros.com/pt/bulletins/AR6001GLBulletin.pdf"&gt;this Atheros Bulletin.&lt;/a&gt;  Atheros provides &lt;a href="http://ecos.sourceware.org/"&gt;eCos&lt;/a&gt; for the ar6001 chips and they call it "eCOS BSP - Basic Kernel."  There are references to the "BSP version AR6000-..." in the firmware *and* eCos has a '&lt;a href="http://exr.lunn.ch/http/source/packages/io/fileio/current/src/devfs.cxx"&gt;devfs&lt;/a&gt;'.  Then, there's &lt;a href="http://mlblog.osdir.com/ecos.devel/2006-08/index.shtml"&gt;this post&lt;/a&gt; from Berend about using &lt;a href="http://www.sics.se/%7Eadam/lwip/"&gt;lwIP&lt;/a&gt; with eCos.&lt;br /&gt;&lt;br /&gt;Any eCos hackers out there?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-979983358280669785?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/979983358280669785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=979983358280669785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/979983358280669785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/979983358280669785'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/lights-go-on.html' title='The lights go on'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4506201702308706422</id><published>2008-02-22T15:15:00.000-08:00</published><updated>2008-02-22T15:45:33.008-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Firmware Fetching</title><content type='html'>Thanks to EyeFi's Berend and his kind comments explaining the difference between "pure zlib data" and gzip formats I've put together &lt;a href="http://sr71.net/%7Edave/projects/eyefi/eyefi-firmware-fetch.pl"&gt;a script&lt;/a&gt; to download from the EyeFi web site and decode a copy of the firmware using a random card's mac address.  Now if I can just figure out what format the firmware is in...&lt;br /&gt;&lt;br /&gt;I also made a mistake.  Reading &lt;a href="http://hostap.epitest.fi/wpa_supplicant/"&gt;wpa_supplicant's&lt;/a&gt; license agreement, I saw the GPL in there and missed the part about it being dual licensed.  However, the nice folks at EyeFi were quick to point out:&lt;br /&gt;&lt;blockquote&gt;The Eye-Fi software utilizes LGPL, BSD, Apache, MIT, ZLib,  IJG (Independent JPEG Group) and Boost licensed open-source components. None of these licenses require disclosure of the source code.&lt;/blockquote&gt;So, I guess there's no Linux in there after all.&lt;br /&gt;&lt;br /&gt;They also pointed out that EyeFi is acting in good faith and &lt;a href="http://savannah.nongnu.org/bugs/?func=detailitem&amp;amp;item_id=21582"&gt;sharing improvements they make&lt;/a&gt; to open-source components that they use.  This bug filing would seem to indicate that they use &lt;a href="http://www.sics.se/%7Eadam/lwip/"&gt;IwIP&lt;/a&gt; for their TCP/IP stack.  This might be why &lt;a href="http://lcamtuf.coredump.cx/p0f.shtml"&gt;p0f&lt;/a&gt; doesn't seem to be able to detect the card's OS.&lt;span style="font-size:-1;"&gt;&lt;span class="a"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4506201702308706422?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4506201702308706422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4506201702308706422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4506201702308706422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4506201702308706422'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/firmware-fetching.html' title='Firmware Fetching'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-9171298665393452105</id><published>2008-02-22T12:08:00.000-08:00</published><updated>2008-02-22T13:56:08.191-08:00</updated><title type='text'>Firmware, press releases and the GPL</title><content type='html'>First of all, it's great to know that some of the EyeFi engineers are reading this!  Berend (who I think is one of the &lt;a href="http://www.eye.fi/about/"&gt;EyeFi Founders&lt;/a&gt;) pointed out that:&lt;br /&gt;&lt;blockquote&gt;The API call simply returns the data in gzipped and Base64-encoded format.&lt;/blockquote&gt;That's what I suspected, but I can't seem to get uudecode to give me anything that looks like gzip in its output.  The sizes line up, but there's no gzip header.&lt;br /&gt;&lt;br /&gt;Berend also noted that the bits about the chipset being Altheros and MIPS are well documented in &lt;a href="http://www.atheros.com/news/eyefi.htm"&gt;press releases&lt;/a&gt;.  Cool!  I'm not just making this stuff up!  Let's quote from there:&lt;br /&gt;&lt;blockquote&gt;The solutions also come with full driver support for        Windows Mobile CE 6.0 and Linux-based designs.&lt;/blockquote&gt;WinCE does not have a 'devfs' as far as I know, so that would lead me to believe that the card is either running Linux or EyeFi has ported another OS to it.  That would be a wee bit interesting if it &lt;span style="font-style: italic;"&gt;ran&lt;/span&gt; Linux.&lt;br /&gt;&lt;br /&gt;Although, the card can't be running Linux since it is GPL'd and would require EyeFi to publish the source code for at least the kernel.  They aren't doing that as far as I know, so it can't be running Linux.   Just in case, here's a &lt;a href="http://gpl-violations.org/faq/sourcecode-faq.html"&gt;nice informative link&lt;/a&gt; which clearly explains a company's obligations under the GPL.&lt;br /&gt;&lt;br /&gt;(changed "a commenter" to refer to Berend)&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-9171298665393452105?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/9171298665393452105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=9171298665393452105' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9171298665393452105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/9171298665393452105'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/firmware-press-releases-and-gpl.html' title='Firmware, press releases and the GPL'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-547581877444762755</id><published>2008-02-22T01:07:00.000-08:00</published><updated>2008-02-22T01:33:45.781-08:00</updated><title type='text'>Firmware image</title><content type='html'>I was able to sniff the latest update to the firmware as it happened.  It does download it as far as I can tell from the site I mentioned in an earlier post.  However, I can't quite figure out what the download format is.&lt;br /&gt;&lt;br /&gt;But, I did manage to catch the manager writing 'EYEFIFWU.BIN' to the root of the card, just before issuing a 'b' command to reboot.  I believe this let me get a hold of a complete, decoded firmware image.  There's a lot of interesting stuff in there.  The card's chipset looks to be a &lt;a href="http://www.google.com/search?num=100&amp;amp;hl=en&amp;amp;q=ar6000+atheros&amp;amp;btnG=Search"&gt;Atheros ar6000&lt;/a&gt; which contains a MIPS core.&lt;br /&gt;&lt;br /&gt;It also appears that the card has /public and /private mount points that the card's OS can see.  /public is what we get to see on the card itself, and private is where the real fun is stored.  There also appears to be a 'devfs'.  devfs's exist on at least FreeBSD and older Linux versions, and this doesn't really point in either direction. &lt;br /&gt;&lt;br /&gt;But, I don't really see an OS, a bootloader  or any executables in the image.  I ran 'file' at 1-byte offsets on it and didn't really come up with much.  I think it could certainly use another pair of eyes.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-547581877444762755?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/547581877444762755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=547581877444762755' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/547581877444762755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/547581877444762755'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/firmware-image.html' title='Firmware image'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-1980829472414349605</id><published>2008-02-21T14:12:00.000-08:00</published><updated>2008-02-21T14:20:44.898-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Working Standalone Software!!</title><content type='html'>So, a reader of this blog has been able to understand many of the interactions with the card.  He's written software to:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;List configured networks&lt;/li&gt;&lt;li&gt;List scanned networks&lt;/li&gt;&lt;li&gt;Print card MAC address&lt;/li&gt;&lt;li&gt;Print card firmware information&lt;/li&gt;&lt;/ol&gt;and I've added on to it to fetch the card logs.  This is really good progress, and the ability to add networks to the card shouldn't be too horribly far away.  I'm sure that the author will be willing to share it publicly soon.  I'd post it somewhere, but I don't want to be passing around someone else's code for which I have no permission to distribute.  I'll post here as soon as it is available.&lt;br /&gt;&lt;br /&gt;BTW, a recent commenter noted that the card can only add ASCII WEP keys, and not hex ones.  They didin't get much help from EyeFi support.  I've seen the same limitation, and I'm happy to say that the card's hardware accepts hex keys.  It's just a limitation of the manager software right now that it only takes ASCII.  I've actually watched the manager software program the hex values derived from the ASCII keys into the card.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-1980829472414349605?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/1980829472414349605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=1980829472414349605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/1980829472414349605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/1980829472414349605'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/working-standalone-software.html' title='Working Standalone Software!!'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-345361671827171091</id><published>2008-02-10T13:46:00.000-08:00</published><updated>2008-02-21T14:21:55.690-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Firmware updates</title><content type='html'>There have been some people talking in the comments about things to do to the firmware.  While I'm sure some of you have actually agreed to the license and are likely restrained by its terms, I bet most of you haven't.  You also don't necessarily have to agree to a license to simply download files from a web site.&lt;br /&gt;&lt;br /&gt;Simply sitting in an airport next to me (or stalking me at my house) you could easily pick up my EyeFi card, its mac address, and watch it do its firmware updates.  You might also see the manager fetch a file from the server for its firmware updates in plain text.  If you want a firmware file for a souvenir, you could try fetching from these urls which are completely unauthenticated (except that your card has to be registered).  So, try a few random ones until you get a hit:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;for ((i=0;i&lt;100;i++));&lt;br /&gt;   url="http://api.eye.fi/api/rest/eyeserver/v1";&lt;br /&gt;   rmac=$(printf '00-18-56-03-%02x-%02x\n'&lt;br /&gt;          $((RANDOM%256)) $((RANDOM%256)));&lt;br /&gt;   wget "${url}/getCardFirmware?Card=$rmac&amp;amp;Version=1.0496";&lt;br /&gt;done&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;The error result documents are ~100 bytes, while the real ones are a couple hundred kilobytes.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-345361671827171091?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/345361671827171091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=345361671827171091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/345361671827171091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/345361671827171091'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/firmware-updates.html' title='Firmware updates'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-2455504001987930013</id><published>2008-02-04T09:31:00.000-08:00</published><updated>2008-02-21T14:21:55.691-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Why I care about EyeFi on Linux</title><content type='html'>A recent commenter noted that EyeFi simply supports XP and OSX because of the volume on those platforms.  It would be silly for them to support the minuscule number of Linux users.  Also, most Linux users at least have &lt;span style="font-style:italic;"&gt;one&lt;/span&gt; XP machine on which to set up the card.&lt;br /&gt;&lt;br /&gt;First of all, I kinda hope EyeFi does not release Linux software.  We are a small minority and they surely will waste engineering resources on an operating system that they do not understand.  I &lt;span style="font-style:italic;"&gt;do&lt;/span&gt; hope they release information on how the card works.  That will let me set it up myself, or let hundreds of others do the same.&lt;br /&gt;&lt;br /&gt;Sure, I could go steal my wife's machine to set up the card.  But, what do I do when I'm traveling?  Isn't that the time I need to change settings in the card the most?&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-2455504001987930013?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/2455504001987930013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=2455504001987930013' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2455504001987930013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2455504001987930013'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/02/why-i-care-about-eyefi-on-linux.html' title='Why I care about EyeFi on Linux'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-7809613251760777052</id><published>2008-01-26T12:07:00.000-08:00</published><updated>2008-02-21T14:21:55.691-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Card communication on the local network</title><content type='html'>Chris Davies saw this blog and was nice enough to point me to &lt;a href="http://www.eyefitools.org/eyefitools-0.01.tar.gz"&gt;some tools&lt;/a&gt; he has written.  They somewhat take the place of the Eye-Fi manager.  In Chris's words:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&gt; It's all fairly trivial. After the card gets a DHCP&lt;br /&gt;&gt; response, it sends out a flood of ARP requests ... for&lt;br /&gt;&gt; each host in the subnet.  It then does a triple handshake&lt;br /&gt;&gt; on the predesignated port of each host in turn, until it&lt;br /&gt;&gt; finds one that's running a server on it. After that it&lt;br /&gt;&gt; just tries to authenticate with that host, and send it&lt;br /&gt;&gt; pictures.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;"That host" is, of course, the one running the Eye-Fi manager.  &lt;a href="http://www.eyefitools.org/eyefitools-0.01.tar.gz"&gt;Chris's tools&lt;/a&gt; will listen on that predesignated port for the card to contact it, and start accepting pictures.&lt;br /&gt;&lt;br /&gt;Well, here's the problem: I don't see any of this behavior!!  I set up a second ethernet card in one of my Linux machines and &lt;a href="http://www.linux-foundation.org/en/Net:Bridge"&gt;turned on bridging&lt;/a&gt; with it and a normal card, then put my wifi access point on that second card.  That makes my PC act like an ethernet switch that allows me to monitor all the traffic that goes over it with &lt;a href="http://www.wireshark.org/"&gt;network&lt;/a&gt;&lt;a href="http://www.wireshark.org/"&gt; mon&lt;/a&gt;&lt;a href="http://www.wireshark.org/"&gt;itoring tools&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I used a filter in &lt;a href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt; to narrow down the traffic to &lt;span style="font-style: italic;"&gt;just&lt;/span&gt; the Eye-Fi card with this filter&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;(eth.addr == 00:18:56:aa:bb:cc) &amp;amp;&amp;amp;&lt;br /&gt;!(ip.addr == 216.218.219.2)&lt;/blockquote&gt;&lt;/span&gt;That's because "&lt;span style="font-family:courier new;"&gt;00:18:56:aa:bb:cc&lt;/span&gt;" is the MAC address of the Eye-Fi card, and &lt;span style="font-family:courier new;"&gt;"216.218.219.2"&lt;span style="font-family:arial;"&gt; is the IP address of the Eye-Fi server.  So, this let me look at all of the card's communication with things &lt;span style="font-style: italic;"&gt;other&lt;/span&gt; than the Eye-Fi server.&lt;br /&gt;&lt;br /&gt;After the DNS requests to talk to the Eye-Fi server, I don't see the card do much of anything.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-7809613251760777052?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/7809613251760777052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=7809613251760777052' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7809613251760777052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7809613251760777052'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/card-communication-on-local-network.html' title='Card communication on the local network'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-2650532053418565170</id><published>2008-01-14T23:17:00.000-08:00</published><updated>2008-02-21T14:22:13.653-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Wine patch</title><content type='html'>Well, it turns out that wine doesn't respect the Windows &lt;span style="font-family: courier new;"&gt;CreateFile()&lt;/span&gt; flags &lt;span style="font-family: courier new;"&gt;FILE_FLAG_NO_BUFFERING&lt;/span&gt; or &lt;span style="font-family: courier new;"&gt;FILE_FLAG_WRITE_THROUGH&lt;/span&gt;.  I have a really simple wine patch to "fix" that.  I really haven't thought it through in too much detail, but it seems to work.&lt;br /&gt;&lt;br /&gt;Basically, whenever wine sees either of those two flags, it just disables all of Linux's filesystem caching with the &lt;span style="font-family: courier new;"&gt;open()&lt;/span&gt; flag &lt;span style="font-family: courier new;"&gt;O_DIRECT.&lt;/span&gt;  You can apply the patch to the latest version of wine out of its &lt;a href="http://wiki.winehq.org/GitWine"&gt;git repository&lt;/a&gt;.  and probably earlier versions, too.  &lt;a href="http://www.sr71.net/%7Edave/projects/eyefi/wine-minimal.patch"&gt;Here's my patch.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll probably be trying to get this into the upstream wine distribution soon.&lt;br /&gt;&lt;br /&gt;BTW, if you want some help building wine, I'd be happy to help, so just &lt;a href="mailto:dave@sr71.net"&gt;email me&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-2650532053418565170?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/2650532053418565170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=2650532053418565170' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2650532053418565170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/2650532053418565170'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/wine-patch.html' title='Wine patch'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-4197706731489698148</id><published>2008-01-14T20:55:00.000-08:00</published><updated>2008-02-21T14:21:55.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Eye-Fi Manager Working in Linux!!!</title><content type='html'>First of all, this is perhaps the most significant progress I've made so far in unraveling this device.  Getting it to work in Linux means that I have a very complete set of debugging tools to use on it to see how it works.&lt;br /&gt;&lt;br /&gt;I'm running the "Eye-Fi Manager.exe" with wine.  The issues that I was seeing with it were because Linux is not reading back the &lt;span style="font-weight: bold; font-style: italic;"&gt;actual&lt;/span&gt; disk contents, but &lt;span style="font-weight: bold; font-style: italic;"&gt;cached&lt;/span&gt; disk contents.  I noticed this by enabling debugging on the usb_storage driver, then accessing the card multiple times with both &lt;span style="font-family:courier new;"&gt;O_SYNC&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;O_DIRECT&lt;/span&gt; set.&lt;br /&gt;&lt;br /&gt;Those options should have caused Linux to do real reads from the card each time, but I didn't see the usb_storage debugging kicking in each time I did a read.  See &lt;a href="http://dave-hansen.blogspot.com/2007/12/more-about-control-files.html"&gt;this post&lt;/a&gt; if you're curious why it's important to do real reads each time.&lt;br /&gt;&lt;br /&gt;Anyway, I instructed wine to have the kernel throw away its cached copies just before each read() of the control files.  I did it with this call:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;posix_fadvise(unix_handle, 0, 0, POSIX_FADV_DONTNEED);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The result: a working Eye-Fi Manager in Linux.  You need to hack and rebuild wine, but it is at least a proof of concept.  It works!!&lt;br /&gt;&lt;br /&gt;Now, I just need to go find out why the reads() aren't obeying O_DIRECT.  It's probably either the usb_storage driver or the vfat filesystem code.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-4197706731489698148?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/4197706731489698148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=4197706731489698148' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4197706731489698148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/4197706731489698148'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/eye-fi-manager-working-in-linux.html' title='Eye-Fi Manager Working in Linux!!!'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6937762259008648793</id><published>2008-01-14T16:03:00.000-08:00</published><updated>2008-02-21T14:21:55.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Alternative to Upload to Computer</title><content type='html'>Since I run Linux don't have a Windows machine, I can't simply use the Eye-Fi manager's ability to copy all pictures down to a PC.  But, I noticed that &lt;a href="http://picasaweb.google.com/"&gt;Google's Picasa&lt;/a&gt; has an &lt;a href="http://code.google.com/apis/picasaweb/overview.html"&gt;open API&lt;/a&gt; for accessing it (and 1GB of free storage).  So, I changed my picture service to Picasa and started digging.  There is an apparently Google-written implementation of a &lt;a href="http://net-google-picasaweb.googlecode.com/"&gt;perl libarary to access Picasa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I used this library to create a little script called picasa-upload.pl.  You can run this script to automatically download all pictures directly from picasa, and store them on your PC.  You can get my script along with a slightly hacked up version of the Picasa libary here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sr71.net/%7Edave/projects/picasa-download"&gt;http://www.sr71.net/~dave/projects/picasa-download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run this every few minutes in a cronjob and, for me, it's just as good as the built-in Eye-Fi capability!&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6937762259008648793?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6937762259008648793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6937762259008648793' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6937762259008648793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6937762259008648793'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/alternative-to-upload-to-computer.html' title='Alternative to Upload to Computer'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6611924593669565551</id><published>2008-01-10T13:36:00.000-08:00</published><updated>2008-02-21T14:21:55.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Eyefi software uses Curl!</title><content type='html'>I was grepping through the Windows binaries looking to see from where messages come when I ran across a little surprise.  The Eye-Fi manager software uses a piece of free software called &lt;a href="http://curl.haxx.se/"&gt;curl&lt;/a&gt;.  Specifically, they statically link in a library portion of curl, libcurl.  It basically implements a little tiny web browser inside of their application so it can talk back to the Eye-Fi web servers.&lt;br /&gt;&lt;br /&gt;It is a bit of a shame that Eye-Fi would choose to use free software inside of its products, but neglect Free Software users by not providing specs or software that &lt;span style="font-style: italic; font-weight: bold;"&gt;run&lt;/span&gt; on Free operating systems.&lt;br /&gt;&lt;br /&gt;By the way, nobody is violating any &lt;a href="http://curl.haxx.se/docs/copyright.html"&gt;license or legal terms&lt;/a&gt; here.  Curl is free to use in the way Eye-Fi uses it.  I just don't think it is very nice.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6611924593669565551?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6611924593669565551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6611924593669565551' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6611924593669565551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6611924593669565551'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/eyefi-software-uses-curl.html' title='Eyefi software uses Curl!'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-6338462603551031896</id><published>2008-01-10T13:31:00.000-08:00</published><updated>2008-02-21T14:21:55.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>Request encoding</title><content type='html'>I've noticed that the data written to the REQM file changes dramatically, despite the command being the exact same.  I can only assume that there's some kind of encoding going on there.  Maybe not encryption per-se, but there something scrambling it, and with something more than just the simple command.  There's some value that changes each time getting thrown into the calculation.  But, without going in and doing something against the license agreement like disassembling, I can't think of any easy way to figure out what is going on in there.  Suggestions welcome!&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-6338462603551031896?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/6338462603551031896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=6338462603551031896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6338462603551031896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/6338462603551031896'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2008/01/request-encoding.html' title='Request encoding'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-3183360139023769076</id><published>2007-12-29T07:42:00.000-08:00</published><updated>2008-02-21T14:21:55.695-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>More about control files</title><content type='html'>When I say that the files are 16k in size, I mean that they appear to be 16k on the filesystem.  Interestingly, the Eye-Fi Manager also seems to write to them &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;only &lt;/span&gt;&lt;/span&gt;in 16k chunks.  It never writes partial bits of the files.  Also, it's good to note that you need to do synchronous file i/o to the files when doing things to them.&lt;br /&gt;&lt;br /&gt;Operating systems cache access to files so that if you write to them twice in quick succession, it sometimes only makes one write to the actual disk.  It can take seconds or minutes for a filesystem operation to get out to the disk.  The Eye-Fi manager ensures that it does synchronous i/o by using some fcntl() calls on OSX.  I'm not sure what it does in Windows.  I'm using fsync() on the file descriptors in Linux to get the same effect.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-3183360139023769076?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/3183360139023769076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=3183360139023769076' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3183360139023769076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/3183360139023769076'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2007/12/more-about-control-files.html' title='More about control files'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3602435813834678741.post-7075315197843019464</id><published>2007-12-26T23:20:00.000-08:00</published><updated>2008-02-21T14:21:55.695-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eyefi'/><title type='text'>New EyeFi Card</title><content type='html'>I got an &lt;a href="http://www.eye.fi/"&gt;EyeFi&lt;/a&gt; card for Christmas.  It's a wonderful little device.  But, sadly, it doesn't come with any software for Linux.  I intend to see what I can do to change that.  I'd at least like to be able to scan for and add new access points without rebooting into Windows.  I'd also like to be able to have it dump its pictures on my Linux PCs instead of uploading to other servers, but that's a way down the line.&lt;br /&gt;&lt;br /&gt;The card itself has a number of files on it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ find /media/EYE-FI/EyeFi/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/media/EYE-FI/EyeFi/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/media/EYE-FI/EyeFi/reqm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/media/EYE-FI/EyeFi/reqc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/media/EYE-FI/EyeFi/rspm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/media/EYE-FI/EyeFi/rspc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These are how the EyeFi Manager communicates with the card.  I think the filenames stand for REQuest or ReSPonse (for the first part of the filename) and Message or Code (for the last character).  They are each apparently 16k in size.&lt;br /&gt;&lt;br /&gt;From what I can glean so far, the manager starts by making sure the files are there, then zeroing them out.  It then writes a command to &lt;span style="font-family:courier new;"&gt;reqm&lt;/span&gt;.  I think those commands are single characters because the log has things like this in them:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[00:19] Host control channel received command 'o' (0x6f).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;It also writes a character after those command characters, and that's where it starts to get murky.  I'll post some more about that tomorrow.  In the mean time, if anyone knows anything more about this card, please contact me.&lt;div class="blogger-post-footer"&gt;&lt;img src="http://sr71.net/blogger.png"/&gt;

The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3602435813834678741-7075315197843019464?l=dave-hansen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dave-hansen.blogspot.com/feeds/7075315197843019464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3602435813834678741&amp;postID=7075315197843019464' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7075315197843019464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3602435813834678741/posts/default/7075315197843019464'/><link rel='alternate' type='text/html' href='http://dave-hansen.blogspot.com/2007/12/new-eyefi-card.html' title='New EyeFi Card'/><author><name>Dave Hansen</name><uri>http://www.blogger.com/profile/00707386709300352343</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
