#include <SPI.h>
#include <SD.h>
#ifndef SD_CS_PIN
#define SD_CS_PIN 10 // D10
#endif
void listDir(File dir, int depth = 0) {
while (true) {
File entry = dir.openNextFile();
if (!entry) break;
for (int i = 0; i < depth; i++) Serial.print(" ");
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
listDir(entry, depth + 1);
} else {
Serial.print(" ");
Serial.print(entry.size());
Serial.println(" bytes");
}
entry.close();
}
}
void setup() {
Serial.begin(115200);
Serial.println("Initializing SD card...");
pinMode(SD_CS_PIN, OUTPUT);
digitalWrite(SD_CS_PIN, HIGH); // keep CS high
SPI.begin(); // Start SPI
if (!SD.begin(SD_CS_PIN)) {
Serial.println("SD init failed. Check wiring, CS pin, and FAT32 format.");
while (1);
}
Serial.println("SD init OK. Listing root directory:");
File root = SD.open("/");
listDir(root);
root.close();
}
void loop() {}