SD Card Error

Habe beim Bau einen Fehler, der früher schon einmal im Slack thematisiert wurde: Nach dem Zusammenbau und Flashen des ESP startet der OBS regulär.

Dann kommt aber die Fehlermeldung SD… error im Display und ein Zähler zählt hoch.

In einem früheren Bugfix lag das Ganze an einer kalten Lötstelle an der ESP-Steckerleiste. Das kann ich hier ausschließen, nachdem ich die Pins mit Steckerleiste und auf der SD-Platine durchgepiepst habe.
Zur Erinnerung die Pinbelegung (Quelle @thomaso )
Am ESP32 hast du Pin-Nummern und am SD-Modul bezeichnungen. Folgende Verbindungen sollten leiten (vor Test am besten Akku entfernen):
MISO-Pin19
CLK-Pin18
MOSI-Pin23
CS-Pin5
3.3V am ESP und am SD-Modul
GND am ESP und am SD-Modul

Eine SD-Karte aus einem anderen OBS habe ich auch getestet. Gibt es noch andere Tipps und Ideen? Weiterer Hinweis im Thread.

Interessanter Nebenaspekt: Ich bekomme an allen relevanten Stellen die richtigen Spannungen, also am ESP, am SD-Modul, am GPS-Board. Aber die LED (rot) auf der Platine mit dem USB-C-Anschluss zum Laden leuchtet nicht. Eingangsspannung ist (4,x V) Out-Spannung ist da (3,4 V) und Batterie-Spannung ist auch (ebenfalls ca. 3,4 V).
Außerdem reagiert der OBS beim Starten zwar auf den Knopfdruck und geht in den Server Modus. Doch er bleibt nicht darauf sondern startet direkt neu. Hat jemand Tipps woran das liegen kann? Hier ein Ausschnitt aus dem Logfile, das er über das Terminal in dieser Endlosschleife absondert:

CreateWifiSoftAP(): AP successful IP: 172.20.0.1
[I][configServer.cpp:598] createHttpServer(): About to create http server.
[I][https.cpp:149] getCertificate(): Reading certificate from SPIFFS.
[I][https.cpp:171] getCertificate(): Read 900 bytes of certificate and 1191 bytes of key from SPIFFS
[I][configServer.cpp:612] createHttpServer(): Starting http(s) servers.
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x400f1b1c: f46030ff ff2b0000 ffffffff
Core 1 register dump:
PC      : 0x400f1b23  PS      : 0x00060230  A0      : 0x800f1f6e  A1      : 0x3ffcf360  
A2      : 0x3ffc4a44  A3      : 0x00003406  A4      : 0x3ffc4b44  A5      : 0x00003467  
A6      : 0x00003406  A7      : 0x00000008  A8      : 0x800f1b1d  A9      : 0x3ffcf2f0  
A10     : 0x00000000  A11     : 0x9b56f96d  A12     : 0x3ffcac74  A13     : 0x9b56f96d  
A14     : 0x00000400  A15     : 0x3ffcd600  SAR     : 0x0000000a  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0x00000000  

ELF file SHA256: 0000000000000000

Backtrace: 0x400f1b23:0x3ffcf360 0x400f1f6b:0x3ffcf390 0x400f22c0:0x3ffcf3b0 0x400f337a:0x3ffcf400 0x400d57e3:0x3ffcf420 0x401127a2:0x3ffcf550 0x400913fa:0x3ffcf570

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
[I][OpenBikeSensorFirmware.cpp:198] setup(): openbikesensor.org - OBS/v0.11.706
[I][VoltageMeter.cpp:40] VoltageMeter(): Initializing VoltageMeter.
[I][VoltageMeter.cpp:54] VoltageMeter(): Characterized using eFuse Vref
[I][VoltageMeter.cpp:62] VoltageMeter(): eFuse Two Point: NOT supported
[I][VoltageMeter.cpp:66] VoltageMeter(): eFuse Vref: Supported
[I][VoltageMeter.cpp:75] VoltageMeter(): VoltageMeter initialized got 0.21V.
[W][sd_diskio.cpp:169] sdCommand(): no token received
[W][sd_diskio.cpp:169] sdCommand(): no token received
[W][sd_diskio.cpp:169] sdCommand(): no token received
[E][sd_diskio.cpp:194] sdCommand(): Card Failed! cmd: 0x00
[W][sd_diskio.cpp:505] ff_sd_initialize(): GO_IDLE_STATE failed
[E][sd_diskio.cpp:775] sdcard_mount(): f_mount failed: (3) The physical drive cannot work
[W][sd_diskio.cpp:169] sdCommand(): no token received
[W][sd_diskio.cpp:169] sdCommand(): no token received
[W][sd_diskio.cpp:169] sdCommand(): no token received
[E][sd_diskio.cpp:194] sdCommand(): Card Failed! cmd

Der Fehler liegt höchstwahrscheinlich an einer fehlerhaften Verbindung. Musst wohl weiter suchen :frowning:

  • Wo am SD Modul hast du gemessen? Es kann auch die Lötung an der Stiftleiste des SD-Moduls sein. Steck mal den ESP auf und miss dann von „oben“ auf den Pins des ESP bis zur Biegung der Winkelstiftleiste am SD-Modul. Außerdem den ESP abstecken und genauso messen, dafür einen kleinen Draht oder so (z.B. was man bei den THT-Bauteilen abschneidet) in die Steckerleiste stecken um mit dem Multimeter dranzukommen.
  • Ist das SD Modul richtig herum drin? :wink:

Es kann auch das SD Modul kaputt sein an sich. Da ist zwar nicht viel drauf, aber trotzdem. Ist jedoch unwahrscheinlich. Wenn du es auslötest und ein neues einlötest, und es dann funktioniert, ist wahrscheinlicher, dass beim Neulöten der Fehler behoben wurde. Mir schon so passiert :wink:

Guru Meditation Error Core  1 panic'ed (IllegalInstruction). Exception was unhandled.

Sieht nach Softwarefehelr aus. Probier mal

  • die Firmware neu zu flashen
  • eine alte Firmware zu flashen
  • einen anderen ESP32 mit bekannter funktinoierender Firmware in deinem neuen OBS

Batterie-Spannung ist auch (ebenfalls ca. 3,4 V).

IIRC ist das ziemlich niedrig. Bekommst du eine rote LED mit anderer Batterie? Wenn ja, dann diese bitte nicht mehr verwenden. Kennt sich hier irgenwder mit LiPo Undervoltage bzw. guter Spannung für längere Lagerung aus?

@rotger ist das mit dem VBatt kabel an den ultraschallsensor? Falls ja: kann es sein dass du damit dein 3.3V auf 4.xV (batterie) hochgezogen hast? Funktioniert die sd am Rechner?

VoltageMeter initialized got 0.21V.

Das ist komisch niedrig.

Das ist nicht der OBS mit dem Batt-Kabel am Sensor. der ist vollständig Original (also sollte es sein :wink: )

THX für die Tipps!

Die Aktionen werd ich morgen mal testen (zunächst mal ESP tauschen) plus Akku tauschen.

Die mechanischen/gelöteten Verbindungen zum SD-Card-Leser hab ich alle ziemlich komplett geprüft - in der Stiftleiste wie auch am ESP oben, an der Platine unten und am SD-Modul direkt an der Platine. Piepst alles sauber durch.

1 „Gefällt mir“

Sodele… habe den Kreuztausch mit einem anderen ESP durchgeführt - in einem anderen OBS bringt der neu geflashte ESP beim Start ebenfalls den SD Card Error.

  • Beide ESPs mit der selbst FW-Version 0.11.706.
  • Der alte allerdings per Update auf die Version gebracht, der neue über das Flash-Tool mit Chrome.

Ich flashe ihn jetzt nochmal - mal schauen.
Und ich habe noch einen weiteren neuen ESP hier, den test ich auch nochmal mit dem Update-Tool per Browser.

Jetzt habe ich noch einen zweiten neuen ESP geflasht - mit Erfolg. Der ESP mit dem SD-Card Error verhält sich schon direkt nach dem Flashen anders als andere Modelle und lässt z.B. keinen Zugriff auf das WLAN-Menü zu. Schein ein Fehler des ESP zu sein. Habe ihn noch 2-3 Mal gelöscht und neu geflasht - kein Änderung. Hat noch jemand ne Idee, ob und wie man den retten kann?

Das Phänomen ist natürlich spannend, wenn jemand allein einen Bausatz zusammenlötet und dann so einen Fehler bekommt - ohne die Chance auf einen Kreuztausch mit anderen ESPs.

Wir hatten auch schon mal zwei ESPs die „schlecht“ waren. Die meisten haben ja eine ersatz-micro-sd zu hause, um zu prüfen obs an der SD liegt, und wenn nicht ist der ESP halt als nächstes dran. Die ESPs kann man zum glück recht schnell über Amazon/Ebay beziehen. Und wenn der ESP nicht mal ins WLAN Menü kommt obwohl man den Button durchgepiepst hat ist das ja recht eindeutig.

Stimmt, wobei ich als Erstes immer die Lötstellen im Verdacht hätte. Insofern wäre bei dem SD-Card-Error die Vorgehensweise wohl folgende:

  1. Durchgang prüfen an folgenden Pins:
    SD-Card-Board - ESP
    MISO - Pin19
    CLK - Pin18
    MOSI - Pin23
    CS - Pin5
    3.3V am ESP - 3.3V am SD-Modul
    GND am ESP - GND am SD-Modul
  2. SD-Card gegen eine andere tauschen
  3. ESP neu flashen und ggf. tauschen

Wobei im Nachhinein dieser ESP sich beim Flashen schon anders verhalten hat als der zweite, den ich danach genutzt habe. Das sieht ein:e Newcomer:in aber nicht: Das Ergebnis lautet „Flashen erfolgreich“, aber es folgt im Browser-Tool nicht wie bei den anderen das WLAN-Menü.

Es kann auch sein, dass die Stiftleiste am ESP nicht gut gelötet ist (das lässt sich beheben), oder irgendwo auf dem Board ein Defekt ist (das eher nicht). Löte doch mal auf gut Glück die relevanten Pins der Stiftleiste des ESP nach?