Go Down

Topic: I can NOT communicate with my Wifly shield... (Read 2032 times) previous topic - next topic


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.

(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.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


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 );
  WiFly.setDHCPMode( WIFLY_DHCP_ON );

  // 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


Code: [Select]


Aren't you supposed to specify a baud rate?
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


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?

Go Up