otherbirds
  • Home
  • Blog
  • Projects
  • Musics
  • Tutorials
    • 18-16
    • 15-11
    • 10-7
    • 6-1
  • Irrelevant
Arduino + WiFi 11/29/2011
10 Comments
 
Get ready to be sad.

All I want is a WiFi shield for my Arduino. I want to snap a little board on top of my Arduino, throw in some code to specify a WiFi network to connect to, and then I want to be able to do socket programming on my Arduino like I can on my desktop. That's all I want.

Infrequently I'll take flak for owning a MacBook Pro or an iPhone. Someone will come along and they'll tell me that I shouldn't support Apple's closed and evil software philosophy, or that I've paid way too much for my computer, or that MacPorts blows goats on a jetski (this last one is totally valid. Choosing between MacPorts, Fink and HomeBrew is like picking whether you want your arm, leg or face pulled off). I take all that criticism, ignore it, and then set it on fire. Why? Because I am a firm believer in what I like to call the "and then move on with your life" philosophy. Here's why I got a MacBook: I asked a friend what kind of laptop I should get. He said I could get a Dell or an HP if I hated myself, I could get something even cheaper and throw a lightweight Linux distro on it, or I could get a MacBook "and then move on with my life." Sold. My friend saw through my question and accurately inferred that what I was really asking was "What's the fastest way to get from where I am now to a place where I can be enjoying laptop-ownership?" And by far the fastest way was in the driver's seat of a MacBook Pro.

That takes us back to the Arduino. What I really want is to be able to connect my Arduino to something else, be it my phone or my laptop or something. I want to get the two communicating and I want it to be easy and lightweight. In other words, I want to get a WiFi shield "and then move on with my life." Unfortunately it doesn't look like the Arduino community understands this philosophy. A quick google search for Arduino WiFi shield yields these results:

http://www.bizoner.com/arduino-wifi-ieee80211bg-serial-shield-internal-antenna-p-232.html
http://www.robotshop.com/anaconda-wifi-shield-arduino.html?utm_source=google&utm_medium=base&utm_campaign=jos
http://www.robotshop.com/cupperhead-wifi-shield-arduino.html?utm_source=google&utm_medium=base&utm_campaign=jos
http://www.linkspritedirect.com/product_info.php?products_id=63&cPath=6#googlebase
http://www.linkspritedirect.com/product_info.php?products_id=25&cPath=7#googlebase
http://www.linksprite.com/product/showproduct.php?lang=en&id=73
http://www.sparkfun.com/products/9954
http://www.cutedigi.com/product_info.php?products_id=4361
https://diysandbox.com/our-products/arduino-shields/hydrogen

All these options with no end--or reviews--in sight. This tells me a number of things: 1. Simple WiFi connectivity might not be that hard, which is good. I mean, the market for Arduino WiFi shields isn't exactly huge. If this many parallel solutions exist then the cost to actually develop something like this must be pretty small. 2. There is no standard solution for WiFi on Arduino, which sucks. This means that each of these boards probably has its own code to go with it, and that the mileage I'll get out of each board will depend not only on the design of the hardware but also on the quality of the documentation. It also means that I'm going to spend a lot of time combing through Arduino forums filled with incomplete or outdated information. Yay. 3. Any solution I develop for working with one shield and software combo will be totally ad-hoc and will not work with another shield and software pairing. For me personally it means that if down the road I decide I don't like a particular board that I'll have to re-write all my network code from scratch. On a level that affects other people it means that it will be really hard to develop a cross-platform library for WiFi on Arduino, something that could be agnostic to which WiFi shield you're using.

What I really want is to slap on a WiFi shield and move on with my life. Instead, I'm going to buy a few of these boards, try them out, and write up a nice comparison, just in time for non-denominational Jesus day. Hopefully the picture isn't as bleak as I've painted it, and getting all this stuff to play together isn't as bad as I suspect it will be. But I'm not holding my breath.
 


Comments

Thiago
12/03/2011 14:38

I have the same problem, and I don't have the answer yet.

Reply
John
12/06/2011 02:54

+1 I will look forward to your findings

Reply
VoltzRoad
01/01/2012 23:26

I really want a Wifi solution hat is stable with ample libraries, and i too have found only obscure sources and prices in the 75$ range. I actually think it would be beneficial to simply make an arduino that is Wifi ready out of the box. Most of my project ideas with real commercial potential involve controlling something remotely through an app. So yeah, let me know how that goes, and keep putting the word out there that this is what a lot of us want

Reply
Jocke
01/19/2012 04:32

Hi!

I tried the CuHead but had no luck there. Obviously the code (async_lab) is not maintained so well and is not working with Arduino 1.0 IDE. Well, I tried to fix the code myself but never got it to work. I am working with a Arduino Uno board.

I'll put my money on the Hydrogen now to see if that works better.

Have you had any progress on this problem?

Reply
Ben
03/08/2012 23:42

Man, I've been feeling this *exact* same thing. And not only are there no reviews for wifi shields... there's also no one complaining about it!

I'm about to buy the CuteDigi one, because it seems like the only option with any reasonable software library... I hope I'm not about to make a terrible mistake.

Reply
Peter
05/01/2012 11:53

I've had a similar problem but have found a work around. Most of the existing network libraries are written for the Arduino (cable) Ethernet shield and often use lower level calls that directly address the Wiznet 5100 chip on the Arduino Ethernet Shield.
In my case these are a DHCP/Bonjour Library and a OSC library.
However you can always connect a mini (pocket) router to the ethernet card e.g. the TP-Link TP WN702n or 3020 in client mode and totally avoid that issue.
My "system", consisting of a Teensy++ and a WiZnet WIZ812 Ethernet Module are announcing a OSC service through Bonjour on my network and TouchOSC picks that up quite nicely. Zeroconf as intended.

Reply
Ben
05/01/2012 12:38

That is a great idea... thanks Peter.

I've been working with the WiShield (with code that hasn't been updated in two years and was made back before Arduino 1.0 had been released). It took a lot of configuring, and I've finally managed to make it work, but it's unreliable.

I would rant more about it, but this blog post already says everything.

Reply
Ben
05/01/2012 12:38

That is a great idea... thanks Peter.

I've been working with the WiShield (with code that hasn't been updated in two years and was made back before Arduino 1.0 had been released). It took a lot of configuring, and I've finally managed to make it work, but it's unreliable.

I would rant more about it, but this blog post already says everything.

Reply
Peter
05/01/2012 13:03

You're welcome! I was working with a WiShield clone myself and got "something" working but the uIP TCP/IP stack is not easy to use.

Someone also mentioned price. I don't remember what I paid for the WiShiled but I also have a Hydrogen, which cost $75. My curent configuration with the Teensy++ ($24, http://www.pjrc.com/teensy/) the Adapter for the Ethernet Module ($7) and the WIZ 812 Ethernet Module ($19) is less expensive than a somewhat equivalent Arduino Mega with an Ethernet Shield but has a LOT smaller footprint.
Running these big libraries I started scratching on the memory limits of my Uno. and the Teensy++ has 130kB on board. Aside from that the Teensy++ uses full USB speed for uploading which compared to an Uno is lighting fast!
I am using the TP-Link TL-WR703n pocket router but it has an all chinese interface for configuration. If that's no concern (Google helped ;-), I got mine on ebay for under $30. The US models run about $10 more. Even then this configuration has a lot speaking for it aside from the additional piece of hardware. the 703 (not the 702) can even run an embedded Linux Router for the adventurous (http://wiki.openwrt.org/toh/start#tp-link1). The neat thing with a router is it's very easy to configure through a web interface, no need to compile and upload code. That's a lot of software one would have to custom program for a WiFi Shield if the functionality is desired.

Actually it's not my idea but I came across it on the Internet. The guy (recotana) who wrote the Arduino OSC library demoed a system like that in a youtube video that I came across. A bit of a face-palm event. "Why did I not think of that ?"

Reply
Ben
05/01/2012 22:17

Wow, yeah, it definitely seems like a wireless router connected to an ethernet arduino (or clone) is the way to go. Thanks for detailing out exactly what you used, too!

Reply



Leave a Reply

    Sam Tarakajian

    Breakfast is a faith-based initiative

    Archives

    January 2012
    December 2011
    November 2011
    October 2011

    Categories

    All
    Codes
    Life Fiction
    Stuff

    RSS Feed