Pages: [1]   Go Down
Author Topic: In Search of a Workable, Affordable WiFi Solution  (Read 2765 times)
0 Members and 1 Guest are viewing this topic.
Arlington, MA, USA
Offline Offline
Sr. Member
****
Karma: 0
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

New River, Arizona
Offline Offline
God Member
*****
Karma: 19
Posts: 931
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not trying to be silly, but in looking around, it is actually easier to use wired ethernet to a wifi-capable router configured as an access point.  I have two WiShields in service, they work fine but were expensive.  On each of the attached arduinos I had to quit adding code and take special means to preserve ram to get what I needed on them.  The software to support tcp/ip, as you pointed out, was too darn large for these little devices and complex applications.  So, I used a wired board and a router I picked up off ebay for a while; that worked really well and saved me some money.  Later, I started playing with XBee and that is the direction I'm moving now.  I can implement pretty serious applications in a home XBee mesh then hook up an arduino (currently working with the 2560) grab the XBee traffic and forward whatever I need onto the web.

I'm not saying the wifi solutions for arduino are poorly done.  I love my little WiShield boards, too bad they've been discontinued.  The clones will probably do the job equally well, but I've found a couple of alternatives and these methods have other possibilities as well.

Now, if your objective is to do a really cool project with a custom wifi arduino, nothing I've said is relevant.  I've done many a project simply because it was cool, practicality wasn't even part of the equation. smiley-wink
Logged

Trying to keep my house under control http://www.desert-home.com/

Arlington, MA, USA
Offline Offline
Sr. Member
****
Karma: 0
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think the attached re-purposed router is a fine solution for a "one-off" and also good for a proof of concept. I'm trying to imagine taking a project from a one-off (right now it connects via wired internet) to a "many" and while not envisioning millions of units, the attached router approach doesn't scale. I've looked for other reasonably priced ethernet<-->wifi adapters, but none seem to exist (not with the reasonably priced qualifier).

My ideal solution would be a wifi module and library that lets me add one line of code:

Wifi.begin ( params.ssid, params.key );

to my existing network init code:

EthernetDHCP.setHostName ( params.name );
EthernetDHCP.begin ( mac ); // shouldn't have to do this!
EthernetDNS.setDNSServer ( EthernetDHCP.dnsIpAddress( ) );

Logged

New River, Arizona
Offline Offline
God Member
*****
Karma: 19
Posts: 931
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep, you're right.  There just isn't a solution out there that meets the criteria you have.  That's my reason for reevaluating the ideas I had in terms of another transport layer.  Unfortunately, changing the transport layer means you'll probably be rewriting a bunch of code and learning about devices that you really didn't want to spend time on.  Maybe spend a few hours looking at serial to wifi devices could help.  I don't have much experience with them and they seem to cost too much also.

One thing I did notice though is that DHCP, DNS and the IP stack eat a lot of code and ram space.  I tried it once with a WiShield and decided to take it back out.  There wasn't enough room left over for my own stuff.  I could serve a simple web page but not much else.  If you go with a 2560 processor, there is plenty of room, but there's the expense factor again.
Logged

Trying to keep my house under control http://www.desert-home.com/

Arlington, MA, USA
Offline Offline
Sr. Member
****
Karma: 0
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, what's the 2560 you refer to? The RN-171 claims to have the IP stack, DNS, DHCP baked in, so it sounds promising. I suppose I should just pony up the $$ for the WiFly and have a stab at that, see how that works. I just wish there were more evidence of it being used successfully...
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3225
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I think draythomp is on the right track... at least on my perspective. I was looking for a wireless solution too, mainly because my router is on show at the house and the wife won't take electronic "junk" at plain sight. LOL

So I started digging around on the Wireless solutions and it was just too much money spent for, at the time, a 16kB microcontroller. True, it would be on the internet immediately, but after some cost considerations, functionality, availability and the discovery of something very nice (keep reading), I gave up on the idea and am now looking into a RF (Xbee-like) solution with a "server" gathering all the data and downloading through the internet to pachube or a database.

In terms of cost, getting a roving network module, plus a board to stick it in (plus 3,3V regulator and level translator) and assembly since most of them have really tiny connections would be really expensive. Around the cost of the WiFly (90$ or so). For that price you can get a new Arduino, 2 XBee shields and not XBees. I found these http://www.ciseco.co.uk/content/?p=1738 that are fully compatible for the price of one XBee.

Then regarding the reach of these devices, they'll be quite similar to the wiFly (to me is a non issue as I live in a small flat), plus... since they have a DIP footprint, you can actually (or at least I can) develop a board with just the Xbee like device and a smaller cheaper chip that takes the data I need or actuates the outputs I need remotely.

Also, if you consider including an SD card or sometjing like that, the server can store the data in the card or in memory if the connection goes down (again, wife is VERY touchy about leaving the wireless on) and upon connection to the internet again, download the stored data. Using Wifly devices, you'd need an SD card on each of them.

I mean, in the end is application or desire dependent but, this solution turns out to be a bit more cheaper and still flexible (or more flexible) if you consider the SD card option.

Just my experience on the matter talking.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Arlington, MA, USA
Offline Offline
Sr. Member
****
Karma: 0
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I basically agree, and if I was just making a device for my home, there would be a number of acceptable solutions. I'm trying to look beyond the "hack something together that works" phase. I think XBee would be intriguing (never played with one), but I want to build a device that stands on its own, and WiFi is what's out there. I think if you try to picture marketing materials that say, "Connects seamlessly to your XBee network!" you'll get what I mean ;-)

So I'm just wondering what people's experiences with different wifi solutions have been. I suspect that in the end, the WiFi module will be the most expensive component, and that's OK, I'd just love to have the benefit of others' experiences, if they're willing to share.

Thanks for everyone's thoughts and contributions so far!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It is actually easier to use wired ethernet to a wifi-capable router configured as an access point. 

This is what I want to do with my project, but the Ethernet boards are ALSO stupid expensive.

cheapest one I could find was $30...seems like a lot to pay for that functionality.

Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

From OP.
Quote
It also seems kooky that SparkFun added a SPI to UART chip, since the module natively supports SPI.

The Roving Networks module does not directly support SPI as a connection mode. I expect it uses it internally in some way for programming purposes, but that information is hidden from me.

I use the Roving Networks module and the SFE Shield because it DOES have the SPI modem (FIFO buffer and high speed, along with the easy path to MORE SPI UARTS of the same type in the same system.) Programming in a second SPI UART was a breeze because of this.

Also:

It operates in b or g mode. The competition does not.

And: It DOESN'T have a TCP/IP stack. It's a simple serial interface. I like that. I have no interest in exposing the Arduino and it's crappy 1K of RAM to that.

The WiFly isn't the cheap choice, but it's the right choice for a lot of applications.
Logged

Linux and Arduino, two great things that go great together!
http://www.roboticcore.com

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3225
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

It is actually easier to use wired ethernet to a wifi-capable router configured as an access point.  

This is what I want to do with my project, but the Ethernet boards are ALSO stupid expensive.

cheapest one I could find was $30...seems like a lot to pay for that functionality.

Considering the cheapest break-out board I've seen for the W5100 was 27$, 30$ for a shield is actually a very good price. Knock-offs from China are priced at around 37  on ebay, I think. :\

@tastewar

Ok, I see. You're actually not solving a problem or trying new technology, you're just "shopping" for a possible solution in case you need one. Sadly, I think that it's gonna be a while before we see something like that available. There's the Microchip solution (used on the Black Widow) but there's no Stack on the chip, so you have to build that for yourself. I guess the solution we all want is something along the lines of the wireless version of the W5100 chip, right?


« Last Edit: April 24, 2011, 04:44:24 am by bubulindo » Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Arlington, MA, USA
Offline Offline
Sr. Member
****
Karma: 0
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
And: It DOESN'T have a TCP/IP stack. It's a simple serial interface. I like that. I have no interest in exposing the Arduino and it's crappy 1K of RAM to that.

The WiFly isn't the cheap choice, but it's the right choice for a lot of applications.


OK, I'm confused. Looking at this page:

http://www.rovingnetworks.com/171.php

It says, "The RN-171 incorporates 802.11 b/g radio, 32 bit SPARC processor, TCP/TP stack,..." and "Built-in networking applications DHCP, UDP, DNS, ARP, ICMP"

(Note: it says the same things on the page for the 131, which is the module on the WiFly shield.)

I'm also a bit confused by your statement that it's a simple serial interface -- are you just sending raw 802.3 ethernet packets and not IP? What's at the other end of your connection?

I guess the solution we all want is something along the lines of the wireless version of the W5100 chip, right?

Yes indeed!!! :-)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3225
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

...
And: It DOESN'T have a TCP/IP stack. It's a simple serial interface. I like that. I have no interest in exposing the Arduino and it's crappy 1K of RAM to that.

The WiFly isn't the cheap choice, but it's the right choice for a lot of applications.
This was referring to the AsyncLabs, microchip solution. And seeedStudio has an XBee shield like that here: http://www.seeedstudio.com/depot/wifi-bee-p-823.html?cPath=139_141&zenid=4cead67be5c210357e40b94f7a2248c0

The roving networks has a stack, but instead of communicating through SPI (like the W5100), it communicates through UART signals. In terms of what the Arduino sends to the network module is the same as the W5100 chip. Except that it goes through the serial port.

The W5100 wireless equivalent would be great... I read somewhere while looking for info on that microchip solution pointed by me a few lines up, that a guy had the TCP/IP Stack programmed on a PIC connected to the module so it would work as a bridge. That is a possibility, but the price, may be high too.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: