arduino-libraries / SD

SD Library for Arduino
http://arduino.cc/
GNU General Public License v3.0
179 stars 155 forks source link

Allow using this library on esp boards #129

Open gasagna opened 1 year ago

gasagna commented 1 year ago

I am trying to use this library on an esp32 dev board, since the SD library that comes with the arduino-esp32 library (mentioned in some other issues here) is not as feature-complete as this one and leads to random behaviour with some SD cards I have.

I have attempted to compile my project using this library (and other libs from arduino-esp32, e.g. SPI, ) and I got a

/Users/gasagna/Documents/Arduino/libraries/SD/src/utility/Sd2PinMap.h:524:4: error: #error Architecture or board not supported.
   #error Architecture or board not supported.
    ^~~~~

suggesting that my board is not supported. Well, OK, but ...

I then commented the compile #error directive at the end of Sd2PinMap.h to get

#else
  //   #error Architecture or board not supported.
#endif

and then initialised the SD card using the appropriate pins for my board, e.g. with

// sd card pins
#define SD_MISO  2
#define SD_MOSI  15
#define SD_SCLK  14
#define SD_CS    13

SPI.begin(SD_SCLK, SD_MISO, SD_MOSI, SD_CS);
SD.begin(SD_CS);

The code not only compiles, but works like a charm.

I wonder what would be the consequences of removing that error directive, or maybe turning it into a more permissive compilation warning.

ark02 commented 1 year ago

I too am trying to use this library with the esp platform and running into the same issues. Why was the compiler directive created for the esp chips? What should I be worried about?

VeloSteve commented 6 months ago

A reply here would be great. On Arduino Nano ESP32 I get an error every few hours with the 2.0.13 version of SD.h in the esp32 board package. Sometimes it even fails right after booting. SdFat.h is very reliable, but has conflicts with the FS.h library. If the SD library here would be the best of both worlds I would love to use it.