[Solved]WiFi shield not present - Help please

I have the official WiFi shield Rev3 stacked on top of UNO R3.
I didn't update the firmware, I just connect these 2 pieces together after I received the package immediately.
Then I connect the Arduino to my PC via USB, compile the following sketch and uploading it:

#include <SPI.h>
#include <WiFi.h>

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);
  } 

  // Print WiFi MAC address:
  printMacAddress();

  // scan for existing networks:
  Serial.println("Scanning available networks...");
  listNetworks();
}

void loop() {
  delay(10000);
  // scan for existing networks:
  Serial.println("Scanning available networks...");
  listNetworks();
}

void printMacAddress() {
  // the MAC address of your Wifi shield
  byte mac[6];                     

  // print your MAC address:
  WiFi.macAddress(mac);
  Serial.print("MAC: ");
  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);
}

void listNetworks() {
  // scan for nearby networks:
  Serial.println("** Scan Networks **");
  int numSsid = WiFi.scanNetworks();
  if (numSsid == -1)
  { 
    Serial.println("Couldn't get a wifi connection");
    while(true);
  } 

  // print the list of networks seen:
  Serial.print("number of available networks:");
  Serial.println(numSsid);

  // print the network number and name for each network found:
  for (int thisNet = 0; thisNet<numSsid; thisNet++) {
    Serial.print(thisNet);
    Serial.print(") ");
    Serial.print(WiFi.SSID(thisNet));
    Serial.print("\tSignal: ");
    Serial.print(WiFi.RSSI(thisNet));
    Serial.print(" dBm");
    Serial.print("\tEncryption: ");
    printEncryptionType(WiFi.encryptionType(thisNet));
  }
}

void printEncryptionType(int thisType) {
  // read the encryption type and print out the name:
  switch (thisType) {
  case ENC_TYPE_WEP:
    Serial.println("WEP");
    break;
  case ENC_TYPE_TKIP:
    Serial.println("WPA");
    break;
  case ENC_TYPE_CCMP:
    Serial.println("WPA2");
    break;
  case ENC_TYPE_NONE:
    Serial.println("None");
    break;
  case ENC_TYPE_AUTO:
    Serial.println("Auto");
    break;
  } 
}

but it always gives me the same message "wifi shield not present".
I tried IDEs 1.0.5, 1.0.6 and 1.0.2 but nothing work for me?
The L9 LED on the shield lights up on connecting the shield to the board, then I have the 4 LED on the shield OFF all the time.
I don't know if this is normal!?
Do I need to upgrade the firmware before the first use of the shield? or there's already installed firmware on the shield?
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????
My BandLuxe Router Configuration:
1- Mixed (802.11b/g).
2- Frequency = 2.442 GH
3- DHCP Disabled. (I'm using static IP).
Help Please :frowning:

Is the jumper removed from (or just on one pin on) the two pins next to the SD card slot? It will fail if the jumper connects the pins.

Do you have a SD card in the shield's slot?

No I don't have SD card in the slot.
and I'm not connecting any jumber/wire to the shield.

I noticed that the WiFi shield R3 has HDG204 not HDG104 as documented in the arduino site. does this make any difference?

Is the little jumper block connecting the two pins next to the SD slot? I can't tell by the picture. Remove the jumper block.

I didn't recognize the jumper at first sight :sweat_smile:
After removing the jumper it works now.XD
Thank you very much...

That jumper is used to install new firmware on the wifi shield. When you do the firmware upgrade, you must jumper those two pins, install the firmware, then insure you remove the jumper block when the upgrade is complete.

SurferTim:
That jumper is used to install new firmware on the wifi shield. When you do the firmware upgrade, you must jumper those two pins, install the firmware, then insure you remove the jumper block when the upgrade is complete.

But, don't lose that little puppy.

PaulS:
But, don't lose that little puppy.

That is why that little puppy is inserted over just one of the two pins when not being used. However, it is a common jumper block, and I have a ton of spares.

hey I'm having the same issue. Brand new wifi shield, removed the jumper but continually get 'WiFi shield not present' when I try to run wifi text examples.
The LEDs on the shield do not flash. There is the slightest quickest flickr on the error led when I first connect to power but then the shield is unresponsive. Is this a common problem.
I'm going to try and update the firmwear as suggested in some places.
I'm running it on an arduino uno. The uno seems to run sketches fine. But it doesn't seem to see the shield.

I was also having the same issue with the "wifi shield not present" message. I have the R3 WiFi shield stacked on an Uno R3 and tried running it on multiple IDEs 1.0.X and 1.5.X with uploading the WiFi shield firmware binaries for the corresponding IDE with no success. I then gave the HDG204 WiFi chip a few taps right on top with a writing pen (make sure pen is non-conductive). I restarted IDE 1.0.4 and uploaded the example sketch under File<Examples<WiFi<ScanNetworks. Finally it works! So far I have tried running it on 1.0.2-1.0.5 with success. I have not figured out why this works yet, but I suspect it is either a bad chip, a cold solder joint from the chip to the PWBA or possible trace or via issue.