diff --git a/src/FSCommon.cpp b/src/FSCommon.cpp index a4fa3c3ae..56e551047 100644 --- a/src/FSCommon.cpp +++ b/src/FSCommon.cpp @@ -1,6 +1,18 @@ #include "configuration.h" #include "FSCommon.h" +#ifdef HAS_SDCARD +#include +#include + + +#ifdef SDCARD_USE_SPI1 +SPIClass SPI1(HSPI); +#define SDHandler SPI1 +#endif + + +#endif //HAS_SDCARD bool copyFile(const char* from, const char* to) { @@ -169,3 +181,39 @@ void fsInit() listDir("/", 10); #endif } + + +void setupSDCard() +{ +#ifdef HAS_SDCARD + SDHandler.begin(SPI_SCK, SPI_MISO, SPI_MOSI); + + if (!SD.begin(SDCARD_CS, SDHandler)) { + DEBUG_MSG("No SD_MMC card detected\n"); + return ; + } + uint8_t cardType = SD.cardType(); + if (cardType == CARD_NONE) { + DEBUG_MSG("No SD_MMC card attached\n"); + return ; + } + DEBUG_MSG("SD_MMC Card Type: "); + if (cardType == CARD_MMC) { + DEBUG_MSG("MMC\n"); + } else if (cardType == CARD_SD) { + DEBUG_MSG("SDSC\n"); + } else if (cardType == CARD_SDHC) { + DEBUG_MSG("SDHC\n"); + } else { + DEBUG_MSG("UNKNOWN\n"); + } + + uint64_t cardSize = SD.cardSize() / (1024 * 1024); + DEBUG_MSG("SD Card Size: %lluMB\n", cardSize); + DEBUG_MSG("Total space: %llu MB\n", SD.totalBytes() / (1024 * 1024)); + DEBUG_MSG("Used space: %llu MB\n", SD.usedBytes() / (1024 * 1024)); +#endif +} + + + diff --git a/src/FSCommon.h b/src/FSCommon.h index 841fa5adb..e304a455b 100644 --- a/src/FSCommon.h +++ b/src/FSCommon.h @@ -44,3 +44,4 @@ bool copyFile(const char* from, const char* to); bool renameFile(const char* pathFrom, const char* pathTo); void listDir(const char * dirname, uint8_t levels, boolean del); void rmDir(const char * dirname); +void setupSDCard(); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index f9a475af0..993cf2106 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -254,6 +254,10 @@ void setup() DEBUG_MSG("PCF8563 RTC found\n"); } } + +#ifdef HAS_SDCARD + setupSDCard(); +#endif #ifdef RAK4630 // scanEInkDevice();