I can NOT communicate with my Wifly shield...

Hi, all
I got a Wifly shield from Sparkfun.

and I try to config this Wifly shield but alway failed…

I have read many setup manual, but it still can not work.使用WiFly%20Shield搭配Arduino%20UNO建立一精簡型伺服器.aspx?ArchID=1722
(this page is Traditional Chinese version)

I have installed Wifly Serial library and uploaded its Wifly_test example into arduino.
Wifly Serial Library: http://sourceforge.net/projects/arduinowifly/files/

however, the Serial Monitor alway display this two line

Starting WiFly Tester.
Free memory:1160

I have tried 2 ways to connect Wifly shield and arduino board.

The way 1. (refer http://www.instructables.com/id/Twitter-Mood-Light-The-Worlds-Mood-in-a-Box/step3/Connect-the-Arduino-and-WiFly-to-a-computer/)
Wifly Rx pin <-----> Arduino digital pin 0
Wifly Rx pin <-----> Arduino digital pin 1
Wifly GND pin <-----> Arduino GND pin
Wifly Vin pin <-----> Arduino Vin pin
Wifly 10 pin <-----> Arduino digital pin 10
Wifly 11 pin <-----> Arduino digital pin 11
Wifly 12 pin <-----> Arduino digital pin 12
Wifly 13 pin <-----> Arduino digital pin 13

The way 2.(refer http://arduinology.tumblr.com/WiFlyBuild)
Wifly Rx pin <-----> Arduino digital pin 3
Wifly Tx pin <-----> Arduino digital pin 2
Wifly GND pin <-----> Arduino GND pin
Wifly Vin pin <-----> Arduino pin 3.3v

and then, I upload Wifly_test example but serial monitor alway only display 2 lines

Starting WiFly Tester.
Free memory:1160

How can I address this issue?

Thank you !!

The schematic shows the following connections on the shield:


Vin does not provide power when running the Arduino off USB power. You will need to provide 7-12V in the power jack.

The Reset connection is only to allow the Reset button on the shield to replace the Reset button covered by the shield.

Thanks for your help.

Today ,I soldered the digital pin 7 on wifly shield.
Following pin was already soldered.
but the Reset pin I didn’t solder it yet, I would like to control Reset function directly from Arduino UNO.
I connect Wifly shield and arduino uno together, and it communicate with my computer through USB cable.
Now, the PIO 4 led and PIO6 led on the Wifly shield is blinking.

I upload Wifly_test example and open the Serial Monitor, but it still only display following string.

Starting WiFly Tester.
Free memory:1166

Should I modify some source code in the Wifly_test example ?
or solder RST pin on wifly shield?

This is my Wifly_Test example code:


  • WiFly_Device Test Platform
  • A simple tester for communicating with the WiFly GSx RN-131b/g series.
  • LGPL 2.0
  • Tom Waldock, 2011

#include <Arduino.h>
#include <Streaming.h>
#include <SoftwareSerial.h>
#include “WiFlySerial.h”
#include “MemoryFree.h”
#include “Credentials.h”

// Pins are 3 for INCOMING TO Arduino, 5 for OUTGOING TO Wifly
// Arduino WiFly
// 2 - receive TX (Send from Wifly, Receive to Arduino)
// 3 - send RX (Send from Arduino, Receive to WiFly)
WiFlySerial WiFly(2,3);

#define BODY_BUFFER_SIZE 100

char bufRequest[REQUEST_BUFFER_SIZE];
char bufHeader[HEADER_BUFFER_SIZE];
char bufBody[BODY_BUFFER_SIZE];

void setup() {

Serial.println(F(“Starting WiFly Tester.” ) );
Serial << F(“Free memory:”) << freeMemory() << endl;

Serial << F(“Starting WiFly…”) << WiFly.getLibraryVersion(bufRequest, REQUEST_BUFFER_SIZE)
<< F(" Free memory:") << freeMemory() << endl;

// get MAC
Serial << F("MAC: ") << WiFly.getMAC(bufRequest, REQUEST_BUFFER_SIZE) << endl;
// is connected ?

// WiFly.setDebugChannel( (Print*) &Serial);

WiFly.setAuthMode( WIFLY_AUTH_WPA2_PSK);
WiFly.setJoinMode( WIFLY_JOIN_AUTO );

// if not connected restart link
if (! WiFly.isifUp() ) {
Serial << “Leave:” << ssid << WiFly.leave() << endl;
// join
if (WiFly.setSSID(ssid) ) {
Serial << “SSID Set :” << ssid << endl;
if (WiFly.setPassphrase(passphrase)) {
Serial << “Passphrase Set :” << endl;
Serial << “Joining… :”<< ssid << endl;

if ( WiFly.join() ) {
Serial << F(“Joined “) << ssid << F(” successfully.”) << endl;
WiFly.setNTP( ntp_server ); // use your favorite NTP server
} else {
Serial << F(“Join to “) << ssid << F(” failed.”) << endl;
} // if not connected

Serial << F("IP: ") << WiFly.getIP(bufRequest, REQUEST_BUFFER_SIZE) << endl <<
F("Netmask: ") << WiFly.getNetMask(bufRequest, REQUEST_BUFFER_SIZE) << endl <<
F("Gateway: ") << WiFly.getGateway(bufRequest, REQUEST_BUFFER_SIZE) << endl <<
F("DNS: ") << WiFly.getDNS(bufRequest, REQUEST_BUFFER_SIZE) << endl
<< F("WiFly Sensors: ") << bufBody << WiFly.SendCommand(“show q 0x177 “,”>”, bufBody, BODY_BUFFER_SIZE) << endl
<< F("WiFly Temp: ") << WiFly.SendCommand(“show q t “,”>”, bufBody, BODY_BUFFER_SIZE)
<< F("WiFly battery: ") << WiFly.getBattery(bufBody, BODY_BUFFER_SIZE) << endl;

WiFly.SendCommand(“set comm remote 0”,">", bufBody, BODY_BUFFER_SIZE);
memset (bufBody,’\0’,BODY_BUFFER_SIZE);

Serial << F(“After Setup mem:”) << freeMemory() << endl ;

Serial << F(“WiFly now listening for commands. Type ‘exit’ to listen for wifi traffic. $$$ (no CR) for command-mode.”) << endl;

// clear out prior requests.
while (WiFly.available() )


char chOut;
void loop() {
// Terminal routine

// Always display a response uninterrupted by typing
// but note that this makes the terminal unresponsive
// while a response is being received.

while(WiFly.available() > 0) {

if(Serial.available()) { // Outgoing data
WiFly.write( (chOut = Serial.read()) );
Serial.write (chOut);

} //loop


Aren't you supposed to specify a baud rate?

Thanks for your help very much.
I have already addressed this issue.
I found that Wifly library and Wifly serial library doesn't support Arduino IDE 1.0 or above.
Due to Arduino IDE 1.0 or above doesn't support "BYTE" type.
And older Arduino IDE 32bits cannot execute on Linux mint 12 64bits.
Therefore, I compiled Wifly code with Arduino IDE 0023 32bits on Linux mint 12 32bits.
Finally , I uploaded it into arduino and configured wifly shield successfully.

BTW , I copied Wifly serial library folder into arduino_0023/libraries and restarted arduino 0023 IDE again.
I can not find "Wifly Serial" in my arduino 0023 IDE "File->Examples" menu.
But I copied Wifly serial library folder into arduino_1.0/libraries and restarted arduino 1.0.
I can find it in "File->Examples" menu successfully.
Is this a bug?