arduino wifi shield don't open widi when sd activ

I have a problem with the official arduino wifi shield and UNO all in R3.
When i begin SD operation, i cannot use Wifi. Here is the sketch :

  WiFi Web Server LED Blink
#include <SPI.h>
#include <WiFi.h>
#include <SD.h>

File root;

char ssid[] = "dlink";      // your network SSID (name)
char pass[] = "xxxx";   // your network password
int keyIndex = 0;                // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
WiFiServer server(80);

const int chipSelect = 4;

void setup() {
  Serial.begin(9600);      // initialize serial communication
  pinMode(13, OUTPUT);      // set the LED pin mode

  Serial.print("\nInitializing SD card...");
 // pinMode(53, OUTPUT);     // change this to 53 on a mega
  pinMode(10, OUTPUT);

  if (!SD.begin(chipSelect)) {
    Serial.println("initialization failed!");
  Serial.println("initialization done.");

  root ="/");
  printDirectory(root, 0);

 digitalWrite(4,HIGH); // forcage SS SD pour désactiver SD

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    while (true);       // don't continue

  String fv = WiFi.firmwareVersion();
  if ( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to Network named: ");
    Serial.println(ssid);                   // print the network name (SSID);

    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
  server.begin();                           // start the web server on port 80
  printWifiStatus();                        // you're connected now, so print out the status

void loop() {
  WiFiClient client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println("new client");           // print a message out the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        char c =;             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        if (c == '\n') {                    // if the byte is a newline character

          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");

            // the content of the HTTP response follows the header:
            client.print("Click <a href=\"/H\">here</a> turn the LED on pin 9 on
            client.print("Click <a href=\"/L\">here</a> turn the LED on pin 9 off

            // The HTTP response ends with another blank line:
            // break out of the while loop:
          else {      // if you got a newline, then clear currentLine:
            currentLine = "";
        else if (c != '\r') {    // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine

        // Check to see if the client request was "GET /H" or "GET /L":
        if (currentLine.endsWith("GET /H")) {
          digitalWrite(13, HIGH);               // GET /H turns the LED on
        if (currentLine.endsWith("GET /L")) {
          digitalWrite(13, LOW);                // GET /L turns the LED off
    // close the connection:
    Serial.println("client disonnected");

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

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.println(" dBm");
  // print where to go in a browser:
  Serial.print("To see this page in action, open a browser to http://");

void printDirectory(File dir, int numTabs) {
  while (true) {

    File entry =  dir.openNextFile();
    if (! entry) {
      // no more files
    for (uint8_t i = 0; i < numTabs; i++) {
    if (entry.isDirectory()) {
      printDirectory(entry, numTabs + 1);
    } else {
      // files have sizes, directories do not
      Serial.println(entry.size(), DEC);

and the monitor says:

Initializing SD card…initialization done.
TI-01-06.CSV 26277
2015TELE.CSV 110
TI-01-07.CSV 61222
TI-01-10.CSV 61454
TI-01-11.CSV 61246
TI-01-12.CSV 61877
TI-01-13.CSV 24391
TI-01-08.CSV 61241
TI-01-09.CSV 61571
2015TELE.CS1 185
Please upgrade the firmware
Attempting to connect to Network named: dlink
Attempting to connect to Network named: dlink

If i comment the line “if (!SD.begin(chipSelect)) {” to " Serial.println(“done!”);", the Wifi works well.
The shield is updates at V 1.1.0

Can any help me, making a webserver with this bug are not cool…

What IDE version are you using?

Please upgrade the firmware

The firmware is not upgraded to v1.1.0.

You can check. Try printing the firmware version.

String fv = WiFi.firmwareVersion();
  if ( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");

// add this
Serial.print(F("Firmware version: "));

I have test it on 1.0.6 or 1.5.8

I have a Mega 2560 (not R3) with a wifi shield (R3), and your sketch works with IDE versions 1.0.6 and 1.5.8. Maybe someone else will test it with an Uno R3.

I have also a mega and have the same pb.
In all cases, Wifi works fine alone, Sd also alone, but both don't works.
I have not the firmware message with wifi alone.
Can it be the shield has a preoblem?

I have also a mega and have the same pb.
In all cases, Wifi works fine alone, Sd also alone, but both don’t works.
I have not the firmware message with wifi alone.
Can it be the shield has a preoblem?

Could be the shield or the SD card. I tested this with my setup and it worked fine. ??

It was the SD card!!
That was a 32 GB Samsung .
The new is a 8 GB Intenso.
Is there a reason?