Please run this program to get more information.
#include <SD.h>
#include <SPI.h>
Sd2Card card;
SdVolume vol;
SdFile root;
const int sdpin = 4;
const int ethpin = 10;
void setup() {
Serial.begin(9600);
pinMode(ethpin, OUTPUT);
digitalWrite(ethpin, HIGH);
if (card.init(SPI_HALF_SPEED, sdpin)) {
Serial.println("card init OK");
} else {
Serial.print("errorCode: ");
Serial.println(card.errorCode(), HEX);
Serial.print("errorData: ");
Serial.println(card.errorData(), HEX);
return;
}
if (vol.init(&card)) {
Serial.println("vol init OK");
} else {
Serial.println("vol init failed");
return;
}
if (root.openRoot(&vol)) {
Serial.println("open root OK");
} else {
Serial.println("open root failed");
}
}
void loop() {}
If all is well you should see this:
card init OK
vol init OK
open root OK
If there is a hardware problem with the shield or card you will see something like this:
errorCode: 1
errorData: FF
If the card format is bad you will see something like this:
card init OK
vol init failed
Or this:
card init OK
vol init OK
open root failed