Go Down

Topic: A wifi shield you will recommend (Read 2 times) previous topic - next topic


For the use of RX/TX to talk in a wifi shield, is 'speed' the only drawback ? (when compared to SPI, IIC for example).

I'm not sure that speed is much of a drawback. I would think that you could talk to it with speeds well in excess of 115,200, although there may be a software limitation in the Arduino library you might need to code around. Many Arduino's have just one UART, so if its talking to a shield, it can't be talking to your computer. SoftwareSerial, in my opinion, is not a very good way to do serial communications. Its a nice library and it works as well as possible, but serial communications like that really needs a UART.


Jul 12, 2012, 07:28 pm Last Edit: Jul 12, 2012, 07:33 pm by Headroom Reason: 1
"It's the interface that kills you" is a quote that I've read many years ago but never forgot.

There is no official Arduino WiFi library, because there is no official Arduino WiFi Shield. Obviously a WiFi library needs to support the WiFi chip
/module that is used that particular WiFi Shield. Make sure that you check if the library supports the functionality you want to use. Your nice, expensive WiFi shield (Hydrogen = $75 !) may end up collecting dust. Mine does :-/

I am using the router suggested on a post above in my project and that has a few very strong pros that - for my application - totally outweigh the cons. The killer pro is that because you are using a standard Arduino Ethernet Shield you have the full functionality not only of the Arduino Ethernet Library but also of the libraries that depend on the Ethernet Library.

For example the DHCP/Bonjour and ArdOSC libraries make use of some lower level functions of the Ethernet Library that directly "talk" to the WizNet 5100 chip (IIRC) that's the heart of the Ethernet shield. If a given WiFi Shield claims compatibility with the Ethernet Library it does not support these low level functions (the Hydrogen does not). You'd have to develop equivalent software routines for the WiFi chip that is on you WiFi shield.

The only drawback of that particular router is the Chinese-only interface for configuring it, but TP-Link also makes models for the US market that are in a similar price range and support the english language.


Your nice, expensive WiFi shield (Hydrogen = $75 !) may end up collecting dust. Mine does :-/

If you would like to sell it, just let me know!

Zoran Djurisic

I've classified the WiFi modules/shields into two categories: those with TCP/IP stack, and those without. Pros and cons:

  • WITH TCP/IP stack: If the TCP/IP stack is on the WiFi module, you typically communicate with the module through a serial port, using simple and well doccumented AT commands. This is a good thing, since it keeps your Arduino safe from wifi hangups, given available serial port on Arduino (software or hardware serial made no difference in my tests). Also, the TCP/IP stack on the WiFi module means it does not have to be loaded into the Arduino, therefore the uploaded code, not pulling a WiFi library along, takes much less memory. Good examples are WIZnet wifi modules and shields based on it, like those by SainSmart and dfrobot. Another module is RowingNetworks RN-131 and 171, and shields based on those, like WiFly; the Rowing Networks got last year acquired by Microchip, and only the time will tell if Microchip will keep supporting these modules.
    Some modules in this class also have SPI port and connecting this way circumvents the module's TCP/IP stack so you get all the advantages of high-speed communication  and ability to mess up the reliability, like described in the next point  :~

  • No TCP/IP stack on the WiFi module: means TCP/IP stack has to be provided to you in a form of an Arduino library (it seems that every WiFi module currently requires it's own library). Now you have a complete access to all aspects of the TCP/IP communication, for the expense of large memory demand on your arduino. Good examples are Microchip ZG2100 and MRF24WB0Mx modules and shields based on them, like AsyncLab WiShield and its clone Cu head. Here the problem is that Async labs closed the shop a few years ago and there is only a 3-years old library update by RuggedCircuits. In the meantine, module's manufacturer Microchip has updated the TCP/IP stack and is giving it out free, but there is non-trivial task of turning it into an Arduino library... These libraries have shown to be rather sensitive to timing issues, so adding anything to them without understanding the TCP/IP stack may make your WiFi shield's operation unreliable

  • Shields with WiFi module + microprocessor: Those your arduino sees like the first kind above, but they are actually the second. The good example is the "official" arduino WiFi shield, which is reported as reliable, but is often out of stock (right now, for example :)).

I personally prefer a communication module that communicates through UART, and those that have good industrial-strength tech support regarding the sensitive TCP/IP stack, so given the choice, I vote for the first kind.


There is no official Arduino WiFi library, because there is no official Arduino WiFi Shield. Obviously a WiFi library needs to support the WiFi chip /module that is used that particular WiFi Shield.

FYI http://store.arduino.cc/eu/index.php?main_page=product_info&cPath=11_5&products_id=237
Don't have so no idea how good it is.

Go Up