Having developed some software that relies on the Ethernet library, and some adjunct libraries (DNS/DHCP), I must say that I appreciate how much software is implemented in the hardware module itself. I wonder why the same thing isn't available for WiFi, or if it is, how I've missed it. It seems like the AsyncLabs WiShield and its offshoots (both their own, and the clones) use a WiFi module that didn't have a built-in IP stack. I'm guessing this was either a cost issue, or an affordability issue. Or possibly, a supportability issue -- the more code you farm out, the more chance there is that something will be broken and you can't fix it. If you write your own IP stack, well, at least you can fix any bugs.
In any case, my understanding (from browsing forums, not from real experience) is that a fair amount of code was required to support the module chosen. Other WiFi shields I've seen include the earlier LinkSprite (prior to the clone of the WiShield), and the SparkFun WiFly shield. I looked at some of the code required to use the LinkSprite -- talk about user-NOT-friendly! And all sorts of problems and frustration expressed on their forum. The SparkFun WiFly looks more promising, but is significantly more expensive. It sounds, from checking their forums, like someone is semi-actively working on the support library. This would be tempting, but it really is surprisingly costly.
So I did some homework on wifi modules. Roving Networks (maker of the module the WiFly uses) price on the RN-131C module is $39 in singles, while they offer an RN-171 for $29. The 171 is cheaper and smaller. I guess the biggest disadvantage is that it's xmit power at max is 2/3 of what the 131 can do.
It also seems kooky that SparkFun added a SPI to UART chip, since the module natively supports SPI.
So I'm wondering why SF chose to use the more expensive module? Was it the XMIT power? Was the 171 not available at the time?
And finally, later in the project, if I build a custom board with ATMega and WiFi, does this seem like a good module, or are there better ones out there? Would it likely work with the WiFly library?
Thanks for any help/advice!