Fystec E4 Board (ESP32-Wroom), SD Lib

Hallo zusammen, ich habe ein Problem mit meinem Fystec E4 Board: Sobald ich versuche, eine Bibliothek für die SD-Karten-Verarbeitung zu importieren und meinen Code zu kompilieren, erhalte ich einen Fehler, und ich bin mir nicht sicher, wie ich das Problem beheben kann; ich verwende derzeit die Bibliothek SD by Arduino ich benötige eine zuverlässige Bibliothek, die es mir ermöglicht, Daten von einer SD-Karte mit meinem Fystec E4 Board auszulesen, und frage mich, ob jemand eine Idee hat, welche andere Bibliothek ich verwenden könnte, die mit dem Fystec E4 Board kompatibel ist, oder ob es eine Möglichkeit gibt, den Fehler mit der aktuellen Bibliothek zu beheben, oder ob es bestimmte Einstellungen oder Konfigurationen gibt, die ich überprüfen sollte; ich verwende eine SD-Karte mit 4 GB und Format FAT32, und ich möchte [html, css, js] von der SD-Karte lesen; ich wäre sehr dankbar für jede Hilfe oder Ratschläge, die mir bei der Lösung dieses Problems helfen könnten.

#include "webservice.h"
#include "pins.h"

#include <WebServer.h>
#include <SPI.h>
#include <SD.h>

WebServer WebService::server(80);

void WebService::setup() {
    if (!SD.begin(23)) {
        Serial.println("SD-Karte konnte nicht initialisiert werden!");
        return;
    }

    Serial.println("SD-Karte wurde initialisiert.");

    server.on("/", handleRoot);
    server.onNotFound(handleNotFound);
    server.begin();
    Serial.println("HTTP Server gestartet");

    readFile();
}

Error code

In file included from .pio\libdeps\esp32dev\SD\src/utility/Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src/utility/SdFat.h:29,
                 from .pio\libdeps\esp32dev\SD\src/SD.h:20,
                 from src\main.cpp:12:
.pio\libdeps\esp32dev\SD\src/utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
In file included from .pio\libdeps\esp32dev\SD\src/utility/SdFat.h:29:0,
                 from .pio\libdeps\esp32dev\SD\src/SD.h:20,
                 from src\main.cpp:12:
.pio\libdeps\esp32dev\SD\src/utility/Sd2Card.h:79:20: error: conflicting declaration 'const uint8_t SPI_MOSI_PIN'
     uint8_t const  SPI_MOSI_PIN = MOSI;
                    ^
In file included from src\main.cpp:4:0:
include/pins.h:16:11: note: previous declaration as 'const int SPI_MOSI_PIN'
 const int SPI_MOSI_PIN = 23;
           ^
src\main.cpp: In function 'void setup()':
src\main.cpp:42:62: error: 'i' was not declared in this scope
         Serial.println("SD-Karte wurde initialisiert!!!: " + i);
                                                              ^
*** [.pio\build\esp32dev\src\main.cpp.o] Error 1
In file included from .pio\libdeps\esp32dev\SD\src/utility/Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src/utility/SdFat.h:29,
                 from .pio\libdeps\esp32dev\SD\src/SD.h:20,
                 from .pio\libdeps\esp32dev\SD\src\File.cpp:15:
.pio\libdeps\esp32dev\SD\src/utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
*** [.pio\build\esp32dev\lib393\SD\File.cpp.o] Error 1
In file included from .pio\libdeps\esp32dev\SD\src\utility/Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src\utility/SdFat.h:29,
                 from .pio\libdeps\esp32dev\SD\src\SD.h:20,
                 from .pio\libdeps\esp32dev\SD\src\SD.cpp:53:
.pio\libdeps\esp32dev\SD\src\utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
*** [.pio\build\esp32dev\lib393\SD\SD.cpp.o] Error 1
In file included from .pio\libdeps\esp32dev\SD\src\utility\Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src\utility\Sd2Card.cpp:22:
.pio\libdeps\esp32dev\SD\src\utility\Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
In file included from .pio\libdeps\esp32dev\SD\src\utility\Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src\utility\SdFat.h:29,
                 from .pio\libdeps\esp32dev\SD\src\utility\SdFile.cpp:20:
.pio\libdeps\esp32dev\SD\src\utility\Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
*** [.pio\build\esp32dev\lib393\SD\utility\Sd2Card.cpp.o] Error 1
In file included from .pio\libdeps\esp32dev\SD\src\utility\Sd2Card.h:26:0,
                 from .pio\libdeps\esp32dev\SD\src\utility\SdFat.h:29,
                 from .pio\libdeps\esp32dev\SD\src\utility\SdVolume.cpp:20:
.pio\libdeps\esp32dev\SD\src\utility\Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
 #error Architecture or board not supported.
  ^
.pio\libdeps\esp32dev\SD\src\utility\SdFile.cpp: In static member function 'static uint8_t SdFile::make83Name(const char*, uint8_t*)':
.pio\libdeps\esp32dev\SD\src\utility\SdFile.cpp:304:15: warning: unused variable 'b' [-Wunused-variable]
       uint8_t b;
               ^
*** [.pio\build\esp32dev\lib393\SD\utility\SdFile.cpp.o] Error 1
*** [.pio\build\esp32dev\lib393\SD\utility\SdVolume.cpp.o] Error 1

Hallo und willkommen im Forum.
Es ist immer besser genauere Angaben zu den verwendeten Bauteilen zu machen.
Links zu den Teilen sind optimal, ebenso zur verwendeten SD-Library. Diese Library kann ich in deinem Sketch nicht erkennen.
Soweit ich es erinnere, hat die von Arduino empfohlene SD Lib bei meinen letzten Versuchen auch funktioniert. Hier noch ein gutes Tutorial.

Mein Tipp:
Teste den SDreader erst ohne den ganzen anderen "Kram" drumherum.

Jetzt sollte es passen.

Was genau meinst du mit denn anderen Kram herum?

Alles was nicht zur SD gehört.
Es fehlt noch der Link zur Library.
Und auch der jetzige Sketch kann nie funktionieren, da die Library nicht eingebunden werden kann.

Was hast Du für ein board/prozedsor ist eingestellt?
Normalerweise bietet espressif eine passende lib an

Esp32-wroom ist verbaut

Und was hast du in der IDE eingestellt ?
Der Link zur Library fehlt immer noch.

Esp32 Dev Modul damit hat es geklappt, habe kein esp32 wroom gefunden

Hier die lib

Nein, die isz falsch.
Den richtigen link hatte ich dir schon gegeben.
Aber normalerweise bekommst Du die zum board gehörenden libs auch zu Auswahl angezeigt.

Grade nochmal ausprobiert.
Wenn Du den ESP eingestellt hast, dann bekommst Du unter
Sketch - Bibliothek einbinden - SD
Und in Deinem Sketch wird dann eingetragen:

#include <sd_diskio.h>
#include <SD.h>
#include <sd_defines.h>

Und du hast dir dann offensichtlich den Link zum Tutorial noch nicht angesehen. Da wird die Lib genannt, die mit dem ESP32 sicher funktioniert.

Hallo, ich habe das Fystec E4 Board welches auf einem ESP32 WROOM basiert.

Nun möchte ich über den Onboard TF Card Socket eine SD Karte verwenden, jedoch funktioniert SD.begin(); mit sämtlichen Pins nicht. Es gibt mir immer wieder false zurück bzw. bringt unter arduino ide sogar das Board zu einem Boot Loop:

rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

Die SPI und SD Libary wurde included. Ich vermute das ich mit SPI.begin() meine MOSI MISO, SCK und CS Pins angeben muss, da meine nicht den Standart Pins entsprechen, leider konnte ich nicht herausfinden wie man SPI.begin und SD.begin in Kombination in einem Code verwendet. Zu dem ist auf der Pin Definition vom Hersteller nicht vermerkt was der CS Pin ist.

Wiki: https://wiki.fysetc.com/docs/E4
Pin Definition: https://github.com/FYSETC/FYSETC-E4?tab=readme-ov-file#pin-definition

Kennt sich damit jemand aus?

Problem wurde gelöst, jeder der das selbe Problem hat und dem mein Code evtl helfen könnte:

Genutzt wurden folgende Libs: https://github.com/espressif/arduino-esp32/blob/master/libraries/SD

#include <SPI.h>
#include <SD.h>

#define SCK 18
#define MISO 19
#define MOSI 23
#define CS 5

SPIClass spi = SPIClass(VSPI);

void setup() {
  Serial.begin(115200);
  Serial.println("Starte Code");
  
  spi.begin(SCK, MISO, MOSI, CS);

  if(!SD.begin(CS, spi, 80000000)) {
    Serial.println("SD-Karte konnte nicht initialisiert werden!");
  } else {
    Serial.println("SD Karte erfolgreich initialisiert!");
  }
}

void loop() {

}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.