Nachdem ich meinen ersten ESPuino zusammengebaut habe ist mir aufgefallen, dass ich ein Problem mit dem RFID-Leser habe. Da ich keine grossen Kenntnisse der heutigen Elektronik habe, bemühte ich Claude in der Fehlersuche. Ich erlaube mir hier das Ergebnis zu Posten:
PN5180: Wiederholtes Neustarten der Wiedergabe bei aufliegender Karte
Hardware / Software
- Platine: ESPuino „Complete“, Hardware-Revision 5.1
- Firmware: 20260816-dev
- RFID-Leser: PN5180 (13-Pin-Modul)
Problembeschreibung
Beim Auflegen einer RFID-Karte startet die Wiedergabe korrekt. Nach kurzer, unregelmäßiger Zeit (mal nach wenigen Sekunden, mal erst nach mehreren Minuten) startet dieselbe Wiedergabe erneut von vorn – obwohl die Karte durchgehend unbewegt auf dem Leser liegen bleibt. Wird die Karte entfernt, tritt keine weitere Wiederholung mehr auf.
Bereits ausgeschlossene Ursachen
Folgende Punkte wurden geprüft und als Ursache ausgeschlossen:
Kabelführung/Einstreuung: Leitung zum RFID-Leser möglichst kurz verlegt, mit größtmöglichem Abstand zur Lautsprecherleitung; Lautsprecherleitung zusätzlich verdrillt.
Lötstellen: Sämtliche Pin-Kontakte auf der RFID-Platine wurden kontrolliert und nachgelötet, optisch sauber.
Mechanische Verbindung: Die ursprünglich gecrimpte Verbindung auf der Leser-Seite wurde durch eine fest verlötete Steckleiste ersetzt (Complete-Seite: konfektionierte Buchse). Wackelkontakte sollten damit ausgeschlossen sein.
Pin-Zuordnung (10-Pin-Stecker Complete ↔ 13-Pin-Leiste PN5180): Die Verdrahtung wurde Pin für Pin nachvollzogen und ist korrekt: RST↔RST, CS↔NSS, MOSI↔MOSI, MISO↔MISO, SCK↔SCK, BUSY↔BUSY, IRQ↔IRQ, GND↔GND. Physische Pin-Positionen weichen zwar zwischen Stecker und Leser-Modul voneinander ab, die Funktionsnamen stimmen aber überein, was so korrekt ist.
Spannungsversorgung: Der Leser erhält ausschließlich 3.3V (Complete Pin 2 → Leser Pin 2). Complete-Pin 1 (5V) ist nicht mit dem Leser verbunden. Da Pin 1 und Pin 2 auf dem Lesermodul werkseitig intern gebrückt sind, ist diese Konfiguration korrekt (kein Überspannungsrisiko auf der digitalen Versorgungsdomäne VDD(IO)).
Diagnose über seriellen Log
Ein Blick in den Debug-Log (Loglevel Debug) beim Auftreten des Fehlers zeigte folgendes wiederkehrendes Muster:
PN5180 wedge/removal suspected (..... ms since last good ISO-14443 read): silent re-init
PN5180 silent heal recovered ISO-14443 card after ... ms
sowie gelegentlich:
PN5180 silent heal gave up after .... ms (ISO-14443 card not re-found)
RFID-Karte erkannt: ...
Wichtige Beobachtung: Die erkannte Karten-UID war bei jedem Ereignis identisch – es handelt sich also nicht um Fehllesungen/Bitfehler, sondern um kurze Leseaussetzer, die die Firmware selbst über die (relativ neue) „Wedge vs. Removal“-Erkennung in RfidPn5180.cpp abzufangen versucht: Bleibt ein gültiges Lesen für die Dauer des konfigurierten Debounce-Werts aus, wird einmalig ein „Silent Heal“-Sweep durchgeführt. Findet dieser die Karte wieder, geht die Wiedergabe unbemerkt weiter; findet er sie nicht, wird die Karte fälschlich als entfernt/neu aufgelegt gewertet – das ist der sichtbare Wiedergabe-Neustart.
Der zugehörige Parameter „PN5180 Debounce“ (Web-UI: Allgemein → RFID-Reader) stand im Auslieferungszustand auf 500 ms. Im Log war zu sehen, dass die tatsächlich verstrichene Zeit bis zur Auslösung aufgrund des Polling-Zyklus (abwechselnd ISO-14443/ISO-15693) real bereits bei ca. 1200 ms lag.
Bisher ergriffene Maßnahme
„PN5180 Debounce“ versuchsweise von 500 auf 2000 erhöht.
Ergebnis (Kurzzeittest, ca. 6 Minuten)
Nach der Erhöhung wurde die „Wedge suspected“-Meldung weiterhin gelegentlich alle 1–5 Minuten ausgelöst (jetzt bei ca. 2130–2540 ms tatsächlich verstrichener Zeit), jedoch in allen Fällen mit „silent heal recovered“ innerhalb von ~280–306 ms. Im Vergleichszeitraum vor der Anpassung waren im gleichen Zeitfenster mehrfach „gave up“-Ereignisse mit anschließendem Wiedergabe-Neustart aufgetreten. Ein Langzeittest über den normalen Alltagsgebrauch steht noch aus.
Offene Fragen an die Community
Sind die periodischen kurzen ISO-14443-Leseaussetzer (alle 1–5 Minuten, bei ansonsten korrekt verdrahteter Hardware) bei ruhig aufliegender Karte am PN5180 bekannt/erwartbar, oder deutet das auf eine noch offene Ursache hin (z. B. HF-Kopplung, Antennenposition)?
Ist das Erhöhen von „PN5180 Debounce“ der empfohlene Weg, um das gelegentliche Scheitern des einmaligen „Silent Heal“-Sweeps zu kompensieren, oder ist ggf. geplant, den Sweep selbst robuster (z. B. mit mehreren Versuchen statt nur einem) zu gestalten?
Gibt es bereits ähnliche Rückmeldungen zu #428 / #444 im Zusammenhang mit dieser „Wedge vs. Removal“-Logik?