PN532 verschwindet aus Tasmota

  • An meinem ESP8266 habe ich mir einen RFID (RDM6300) und einen NFC (PN532) angeschlossen.

    Beides über die aktuelle Tasmota Software 12.4.0 eingerichtet und es läuft soweit.

    Unregelmäßig alle paar Stunden verschwindet der PN532 aber aus der Anzeige und wird dann auch nicht mehr ausgelesen.

    Erst nach Neustart ist er wieder da und funktioniert.

    Habt ihr eine Idee, warum der immer rausgeschmissen wird? Gibt es da eine Lösung für?

    Im Moment resette ich den ESP8266 jede Stunde einmal damit ich damit arbeiten/testen kann.

    Links mit dem Fehler - rechts nach Reset wieder OK:

       

  • Hat das gleiche Problem mit dem PN532, aber in einer älteren Tasmota Version, vermutlich 9.x.

    Habe das Ding vor 10 Tagen auf 12.3.1.6 upgegraded und aktuell eine Uptime von 9T12... und teste mehrmals täglich mit verschiedenen Tags.

    PN532 ist auf D1 und D2 konfiguiert.

    In den Logs gibt's keine Hinweise ?

  • Das ist bei mir so eingestellt:

    "SleepMode":"Dynamic","Sleep":50,"LoadAvg":39,",......

    Was müsste man denn ändern? Bzw. woran liegt es denn, dass das Modul "verschwindet"?

  • Wird nicht am DeepSleep liegen. Vermutlich an der Kombination PN532 und RDM6300.

    Kannst du mal den RDM6300 weglassen und den ESP nur mit dem PN532 testen? Wie hast du den PN532 konfiguriert ?

    Meine Konfig:

    Einmal editiert, zuletzt von Noschvie (6. März 2023 um 18:22)

  • zufällig arbeite ich gerade unter anderem an diesen beiden Treibern.

    Der PN532 is sehr unzuverlässig über serielle Schnittstelle und sollte gar nicht mit Software seriell betrieben werden.

    Beim RDM stört das weniger.

    Habe beide Treiber umgeschrieben und der PN532 geht jetzt auch mit I2C. dort scheint er erheblich stabiler zu sein.

    Allerdings laufen beide jetzt mit einer neuen Software Schnittstelle (Plugins)

    Wenn jemand das ausprobieren will => Binaries deutsch mit SML und SCRIPT

    Dazu geht ihr ins Menu Plugins und ladet dort eine der Treiber aus dem Link hoch. Die Treiber werden ohne Neustart eingebunden oder auch wieder gelöscht. Wenn ihr die Treiber beim Neustart starten wollt müsst ihr Option A7 auf einem Pin definieren.

    Beim PN532 ist Mode ! default (I2C) Mode 0 ist seriell

  • Habe beide Treiber umgeschrieben und der PN532 geht jetzt auch mit I2C.

    Würdest du das etwas näher beschreiben?

    Ich habe das auf einem D1 installiert. frei waren dann noch 15,9k RAM.

    Nun wollte ich das Plugin laden und es gibt 2. Einmal PN532_D.bin und einmal PN532.bin.

    Wo ist der Unterschied (außer in der Dateigröße)?

    Ich nehme an, dass bei der Verdrahtung SDA TX entspricht und SCL RX?

    Kann ich es auch auf gpio4 SDA und 5 SCL stellen?

    Kann ich dann einfach z.B. gpio13 auf option a7 stellen?

    Dip1 auf 1 und 2 auf 0?

    Sollte er dann nach einem Reset Token lesen und im Hauptmenue anzeigen?

    Vielleicht am Besten die genaue Vorgehensweise für Dummies... :)

    Ich hab da eher Planlos rumgestellt, aber kein Ergebnis...

    2 Mal editiert, zuletzt von jay (24. Oktober 2023 um 03:52)

  • Die beiden Treiber unterscheiden sich darin, das der _D (Data) Treiber es erlaubt auch die Karte zu beschreiben z.B. mit Texten "jays Karte", während der andere nur die ID der Karte ausgibt.

    I2C kannst du auf fast jeden Pin legen, bei seriell musst du die Hardware serial Pins nehmen wegen der hohen Baudrate.

    beim I2C mode (0) wird das Interface im Tasmota GUI definiert, beim seriellen Mode(1) im Plugins Interface

    Denk dran dass du die Platine für I2C umjumpern musst. bei meinem Gerät konnte ich mit seriellen mode keinen stabilen Betrieb erzielen während der I2C mode einwandfrei funktioniert.

  • beim I2C mode (0) wird das Interface im Tasmota GUI definiert

    Wichtige Info. :) Dann versuch ichs nochmal.

    Was hat es mit dem option a 7 auf sich?

    Übrigens hat bei meinen Tests mit rx und tx auf d1 und d2 im seriellen Modus das Lesen und Schreiben geklappt, es war alles nur unsäglich langsam. er hat bis zu 3 Sekunden zum Lesen einer Karte gebraucht.

    Und man musste das Token sehr nah an die Platine halten. Auch nachdem ich den PN mit 5V versorgt hab...

  • Das Gerät lief unter HSU mit dem selbst kompilierten Tasmota problemlos (aber eben lahm).

    Die Jumperstellungen habe ich bereits alle durchprobiert

    Kann es sein, dass es unter d1 und d2, also dem Hardware i2c nicht läuft?

    Welche Pins benutzt du?

    Ist es mit i2c denn überhaupt schneller?

  • leider finde ich mein pn532 gerade nicht, ist schon eine Weile her dass ich das getestet hatte. es war aber deutlich schneller als das HSU.

    eigentlich sollte es doch bei den Jumpern oder dipswitches kein rumbrobieren geben. ist doch klar beschriftet.

    teste in der console mit i2cscan ob es sich meldet. erst wenn es dort gefunden wird kannst du weiter testen.

  • eigentlich sollte es doch bei den Jumpern oder dipswitches kein rumbrobieren geben. ist doch klar beschriftet.

    Ja, aber es wär ja möglich, dass die nicht stimmt.

    Ist aber wohl der Fall:

    ähm, was denn nun?

    beim I2C mode (0) wird das Interface im Tasmota GUI definiert, beim seriellen Mode(1) im Plugins Interface

    oder

    Beim PN532 ist Mode ! default (I2C) Mode 0 ist seriell

    hm, es ist wohl 1.

    nachdem ich einmal einen ic2scan gemacht hab, läuft es nun auch.

    ohne den einmaligen scan erkennt er das modul nicht, bzw initialisiert das device nicht.

    bei neueren tokens ist er zwar schneller als das serielle, aber von schnell noch weit entfernt (ggü einem 522 am arduino).

    es scheint auch die homeassistant einstellung zu fehlen. er erkennt das device nicht als tasmota device.

    er sendet einfach die topics zum mqtt und man muss den rest von hand stricken..

    und der leseabstand ist echt unterirdisch. mehr als 1cm ist nicht drin und das ohne irgendwas dazwischen...

    da hab ich echt mehr erwartet.

    kann man da noch was drehen?

    Einmal editiert, zuletzt von jay (24. Oktober 2023 um 20:30)