Problema con Ethernet Shield 5100 su alcuni pin

Buongiorno a tutti
Ho recentemente comprato una Ethernet Shield w5100 per il mio arduino Uno
Prendendo spunto da qualche topic nel forum sono riuscito a scrivere un codice che dovrebbe accendere dei led da una pagina internet
Il codice funziona perfettamente dal pin 2 al pin 9 e nei restanti 4 no
i led sui pin 10 11 e 13 restano sempre accesi e il 12 sempre spento
nella pagina web di comando dei pin invece vengono indicati sempre accesi i pin 10 11 e 12 mentre il 13 viene indicato come spento e solo su questi 4 pin non funziona il comando accendi/spegni
Non me ne intendo ancora molto di programmazione e non riesco a capire dove sbaglio
Il codice è il seguente

  #include <SPI.h>
  #include <String.h>
  #include <Ethernet.h>
  byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
  byte ip[] = { 192, 168, 1, 180 }; 
  byte gateway[] = { 192, 168, 1, 254 };
  byte subnet[] = { 255, 255, 255, 0 }; 
  EthernetServer server(80);
  String readString;

//Pin
  byte outA = 2;
  byte outB = 3;
  byte outC = 4;
  byte outD = 5;
  byte outE = 6;
  byte outF = 7;
  byte outG = 8;
  byte outH = 9;
  byte outI = 10;
  byte outL = 11;
  byte outM = 12;
  byte outN = 13;

//Setup
  void setup()
   { 
    Ethernet.begin(mac, ip, gateway, subnet);

    pinMode(outA, OUTPUT);  //Luce Pin 2
    pinMode(outB, OUTPUT);  //Luce Pin 3
    pinMode(outC, OUTPUT);  //Luce Pin 4
    pinMode(outD, OUTPUT);  //Luce Pin 5
    pinMode(outE, OUTPUT);  //Luce Pin 6
    pinMode(outF, OUTPUT);  //Luce Pin 7
    pinMode(outG, OUTPUT);  //Luce Pin 8
    pinMode(outH, OUTPUT);  //Luce Pin 9
    pinMode(outI, OUTPUT);  //Luce Pin 10
    pinMode(outL, OUTPUT);  //Luce Pin 11
    pinMode(outM, OUTPUT);  //Luce Pin 12
    pinMode(outN, OUTPUT);  //Luce Pin 13
    Serial.begin(9600);         //Porta Seriale
   } 

//Loop
  void loop()
  {
   EthernetClient  client = server.available();

   if (client) {
     boolean currentLineIsBlank = true;
   while (client.connected()) {
     if (client.available()) { 
       char c = client.read();
       readString.concat(c);
       if (c == '\n' && currentLineIsBlank) {
       //Serial.print(readString);
       if(readString.indexOf("onA")  > 0) digitalWrite (outA, HIGH);  //Luce Pin 2
       if(readString.indexOf("offA") > 0) digitalWrite (outA, LOW );
       if(readString.indexOf("onB")  > 0) digitalWrite (outB, HIGH);  //Luce Pin 3
       if(readString.indexOf("offB") > 0) digitalWrite (outB, LOW );
       if(readString.indexOf("onC")  > 0) digitalWrite (outC, HIGH);  //Luce Pin 4
       if(readString.indexOf("offC") > 0) digitalWrite (outC, LOW );
       if(readString.indexOf("onD")  > 0) digitalWrite (outD, HIGH);  //Luce Pin 5
       if(readString.indexOf("offD") > 0) digitalWrite (outD, LOW );
       if(readString.indexOf("onE")  > 0) digitalWrite (outE, HIGH);  //Luce Pin 6
       if(readString.indexOf("offE") > 0) digitalWrite (outE, LOW );
       if(readString.indexOf("onF")  > 0) digitalWrite (outF, HIGH);  //Luce Pin 7
       if(readString.indexOf("offF") > 0) digitalWrite (outF, LOW );
       if(readString.indexOf("onG")  > 0) digitalWrite (outG, HIGH);  //Luce Pin 8
       if(readString.indexOf("offG") > 0) digitalWrite (outG, LOW );
       if(readString.indexOf("onH")  > 0) digitalWrite (outH, HIGH);  //Luce Pin 9
       if(readString.indexOf("offH") > 0) digitalWrite (outH, LOW );
       if(readString.indexOf("onI")  > 0) digitalWrite (outI, HIGH);  //Luce Pin 10
       if(readString.indexOf("offI") > 0) digitalWrite (outI, LOW );
       if(readString.indexOf("onL")  > 0) digitalWrite (outL, HIGH);  //Luce Pin 11
       if(readString.indexOf("offL") > 0) digitalWrite (outL, LOW );
       if(readString.indexOf("onM")  > 0) digitalWrite (outM, HIGH);  //Luce Pin 12
       if(readString.indexOf("offM") > 0) digitalWrite (outM, LOW );
       if(readString.indexOf("onN")  > 0) digitalWrite (outN, HIGH);  //Luce Pin 13
       if(readString.indexOf("offN") > 0) digitalWrite (outN, LOW );
 //  PAGINA HTML RIMOSSA PER LIMITE CARATTERI
      readString="";
      delay(1);
      client.flush();
      client.stop(); 
      }
      }
      }
      }
      }

Grazie

i pin 10-11-12-13 servono per far funzionare lo shield ethernet, quindi va da se che non vanno assolutamente impegnati se usi l'SD bhe allora nemmeno il 4, se la sd non la usi non inserirla ... allora il 4 sarai libero di usarlo

http://arduino.cc/en/Reference/SPI

PS: manca la presentazione (aspetta tra poco vedrai sbucare nid ninja yataaa-tà-tà-tà)

Grazie pablos per la velocissima risposta
dove avevo comprato la shield c’era scritto che servivano solo i 6 pin ICSP

Sono duplicati sui pin 11.12.13 (MISO... MOSI... CLK ) per gli shield che non hanno il connettore ICSP Io prima ho detto per lo "shield ethernet" ma in realtà (mi correggo) è per l'utilizzo di tutti gli shield che usano l'SPI, il 10 CS può essere cambiato, ma nel tuo caso con collegamento standard devi lasciare libero anche quello.