ESPLogger icon indicating copy to clipboard operation
ESPLogger copied to clipboard

Problems with using SD_MMC as the SD card protocol

Open sebastianfastert opened this issue 2 years ago • 7 comments

Hi,

we use SD_MMC to communicate to our SD card, instead of SPI. Is it possible to use this with your library? We ran into a few problems while testing and are unsure about the way we should call your lib. And it seems like the logger_sd.h only supports SPI.

Thanks for all your work. Greetings.

sebastianfastert avatar Jun 26 '22 15:06 sebastianfastert

Hi, no, the latest stable version (the one present on the Arduino library registry) doesn't work with SD_MMC.

However, I'm refactoring the library so that it will support any FS and storage implementing the FS interface. The latest commit should work properly.

If you will try it, let me know!

fabianoriccardi avatar Jul 02 '22 20:07 fabianoriccardi

We forked the repo and changed two lines.

Here is the repo: https://github.com/Wishmob/ESPLogger_MONA

It was only necessary to remove the LittleFS included, because we don't want our project to need that. (Only SD_MMC).

Now it works. Thanks!

sebastianfastert avatar Jul 07 '22 18:07 sebastianfastert

Now it works. Thanks!

Great!

Does #include <LittleFS.h> create issues during compilation? Since it is a new release I would know potential issues.

fabianoriccardi avatar Jul 07 '22 20:07 fabianoriccardi

If I remember correctly, we could not compile it, because we didn't had it installed. And since we don't need it (If think it's just there as a default param), we don't want to depend on it.

sebastianfastert avatar Jul 07 '22 21:07 sebastianfastert

That's weird unless you are using an old core version. LittleFS is now the default FS for both ESP8266 and ESP32... Which MCU and which core version are you using?

fabianoriccardi avatar Jul 08 '22 06:07 fabianoriccardi

My version is:

➜ pio --version
PlatformIO Core, version 6.0.2

And we have an ESP32.

In the platformio documentation it says the following:

The SPIFFS file system is used by default in order to keep legacy project compatible. To choose LittleFS or FFat as the file system, it should be explicitly specified using board_build.filesystem option in “platformio.ini” (Project Configuration File), for example:

[env:myenv]
platform = espressif32
framework = arduino
board = ...
board_build.filesystem = littlefs

But in our case the partition scheme is default_16MB.csv. It has a SPIFFS partition (I don't think we need that, but it's there) and I guess that will not work with LittleFS.

sebastianfastert avatar Jul 08 '22 10:07 sebastianfastert

Understood, I have forgotten that PIO continues to uses spiffs as default, however LittleFS.h is included in the core even if you don't use it.

But in our case the partition scheme is default_16MB.csv.

That doesn't imply that you are constrained to use SPIFFS. That is just the partition table, you can fill each partition with whatever you want. I guess the ESP32's developers have called that partition as spiffs because at the time it was the only FS available.

fabianoriccardi avatar Jul 08 '22 15:07 fabianoriccardi