Using wifi shield to connect to an ad hoc network

Hi,guys
I’m trying to connect to an open ad hoc network using the wifi shield.The ad hoc network called “RPiAdHocNetwork” is created by a Raspberry Pi with a wifi dongle. The information of the network is showed in the following capture. I used the example code in ConnectNoEncryption. (http://arduino.cc/en/Tutorial/ConnectNoEncryption) and modify the SSID to my network name. But the connection fails.
My computer and my phone have no problem connecting to the “RPiAdHocNetwork”. Does anyone know how I can connect the wifi shield to that network?

#include <WiFi.h>
char ssid[] = "RPiAdHocNetwork";     // the name of your network
int status = WL_IDLE_STATUS;     // the Wifi radio's status

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600); 
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present"); 
    // don't continue:
    while(true);
  } 
  WiFi.config(ip, dns, gateway, subnet); 
 // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) { 
  
    Serial.print("Attempting to connect to open SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid);
    // wait 10 seconds for connection:
    delay(10000);
  }
   
  // you're connected now, so print out the data:
  Serial.print("You're connected to the network");
  printCurrentNet();
  printWifiData();
}

void loop() {
  // check the network connection once every 10 seconds:
  delay(10000);
  printCurrentNet();
}

void printWifiData() {
  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
    Serial.print("IP Address: ");
  Serial.println(ip);
  Serial.println(ip);
  
  // print your MAC address:
  byte mac[6];  
  WiFi.macAddress(mac);
  Serial.print("MAC address: ");
  Serial.print(mac[5],HEX);
  Serial.print(":");
  Serial.print(mac[4],HEX);
  Serial.print(":");
  Serial.print(mac[3],HEX);
  Serial.print(":");
  Serial.print(mac[2],HEX);
  Serial.print(":");
  Serial.print(mac[1],HEX);
  Serial.print(":");
  Serial.println(mac[0],HEX);
  
  // print your subnet mask:
  IPAddress subnet = WiFi.subnetMask();
  Serial.print("NetMask: ");
  Serial.println(subnet);

  // print your gateway address:
  IPAddress gateway = WiFi.gatewayIP();
  Serial.print("Gateway: ");
  Serial.println(gateway);
}

void printCurrentNet() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print the MAC address of the router you're attached to:
  byte bssid[6];
  WiFi.BSSID(bssid);    
  Serial.print("BSSID: ");
  Serial.print(bssid[5],HEX);
  Serial.print(":");
  Serial.print(bssid[4],HEX);
  Serial.print(":");
  Serial.print(bssid[3],HEX);
  Serial.print(":");
  Serial.print(bssid[2],HEX);
  Serial.print(":");
  Serial.print(bssid[1],HEX);
  Serial.print(":");
  Serial.println(bssid[0],HEX);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.println(rssi);

  // print the encryption type:
  byte encryption = WiFi.encryptionType();
  Serial.print("Encryption Type:");
  Serial.println(encryption,HEX);
}

Does anyone know how I can connect the wifi shield to that network?

From what I can gather it can't be done.

Grumpy_Mike:

Does anyone know how I can connect the wifi shield to that network?

From what I can gather it can’t be done.

Tested and confirmed. It can’t be done. I even tried WiFi.config(ip) prior to the begin() call, and it wouldn’t connect.

SurferTim:

Grumpy_Mike:

Does anyone know how I can connect the wifi shield to that network?

From what I can gather it can’t be done.

Tested and confirmed. It can’t be done. I even tried WiFi.config(ip) prior to the begin() call, and it wouldn’t connect.

Thanks for the reply,Grumpy_Mike and SurferTim. I have an arduino UNO with a wifi shield. On the side is a raspberry pi with a wifi dongle which supports IEEE 802.11 b/g. Is that possible to make them talk to each other wirelessly without any routers?

I don't think so. I think the best you will be able to get from the RPi/wifi dongle is an ad hoc network, and I already know the wifi shield will not connect to that type of network.