RFID-RC522 von AZDelivery funktioniert nicht

Servus zusammen,

ich bin nach 2 Tage langer Fehlersuche nicht auf die Lösung gekommen.

Habe ein viererset von AZdelivery bezogen [AZDelivery 4 x TonUINO Set]

Nachdem ich die Nanos nicht mit den Sketeches bespielen konnte, egal mit welchem Treiber bin ich erst Mal auf einen originalen Arduino UNO umgestiegen der noch rumlag.

Damit habe ich folgenden Aufbau:

  • 1x Arduino Uno
  • 3x Taster
  • 1x MP3-TF-16p
  • 1x RFID-RC522

Aufgebaut nach diesem Schaltplan auf der Tonuino Seite Schaltplan

Der Uno ist mit der Firmware 3.1.3 von Github bespielt Firmware 3.1.3

Im MP3 Player steckt eine 8GB SD Karte mit dem empfohlenen Tool von SD formatiert und mit dem entsprechenden Dateien bestückt. Wie im Repository beschrieben habe ich die Dateien explizit für die 3.1.3 verwendet. (Getestet habe ich aber auch mit den anderen)
Zusätzlich habe ich einen Ordner mit 14 MP3 Dateien angelegt der „01“ heißt und in dem die Dateien entsprechend mit „001.mp3“, „002.mp3“, etc. benannt sind.

Was funktioniert:

  • Beim Start ertönt ein Ton (vermutlich die mp3 262)
  • Die Buttons werden mit Command 7, 11 und 12 erkannt im seriellen Monitor
  • Das Adminmenü kann angewählt werden
  • Beim versuch eine Karte zu Beschreiben im Admin Menü kann ich meinen Ordner mit den MP3s finden und es wird abgespielt
  • Der RFID Leser wird mit Strom versorgt und die D1 LED leuchtet rot

Was nicht funktioniert:

  • Beim auflegen einer Karte passiert nichts
  • Im seriellen Monitor wird nichts ausgegeben

Was ich versucht habe:

  • 4x tausch der des RFID-RC522 keiner funktioniert
  • Jeweils 3x neu löten der Stiftleisten (ein durchgangsprüfer bestätigt mir den Kontakt aller Pins)
  • Austausch der Jumperkabel
  • Direkter anschluss am Arduino Uno
  • Die schritte der beiden FAQs (software und hardware) die den RFID Leser betreffen könnten habe ich durchgearbeitet

Nichts davon bringt eine Änderung mit sich.
Deshalb bitte ich um Hinweise, was ich eventuell übersehen habe oder wo noch Fehler sein könnten.

Wenn ich mit dem seriellen Monitor Boote bekomme ich folgende Ausgabe:

19:30:01.264 -> 
19:30:01.264 ->  _____         _____ _____ _____ _____
19:30:01.264 -> |_   _|___ ___|  |  |     |   | |     |
19:30:01.264 ->   | | | . |   |  |  |-   -| | | |  |  |
19:30:01.264 ->   |_| |___|_|_|_____|_____|_|___|_____|
19:30:01.264 -> TonUINO Version 3.1 - refactored by Boerge1
19:30:01.264 -> 
19:30:01.264 -> created by Thorsten Voß and licensed under GNU/GPL.
19:30:01.264 -> Information and contribution at https://tonuino.de.
19:30:01.264 -> 
19:30:01.264 -> V3.1.3 03.08.23
19:30:01.264 -> 
19:30:01.341 -> Ver:2
19:30:01.341 -> Vol:25 5 15
19:30:01.341 -> EQ:1
19:30:01.341 -> LOC:0
19:30:01.341 -> ST:0
19:30:01.341 -> IB:1
19:30:01.341 -> AL:0
19:30:01.341 -> AP:1111
19:30:01.341 -> PCR:0
19:30:03.354 -> Volume: 15
19:30:03.527 -> enter Idle
19:30:03.527 -> Command: 6
19:30:03.527 -> enqueue mp3 262 0
19:30:03.527 -> play mp3 262

Und hier noch die Lötstellen von einem Leser:

Vielen Dank fürs Lesen

Ist es wirklich ein Arduino Uno oder, wie ihn hier alle nutzen, ein Arduino Nano?

Bei der Aussage würde ich davon ausgehen

Es ist wirklich ein Arduino UNO R3 mit einem ATmega328P bestückt.
So einer: Arduino UNO R3
Kein Klon.

Somit sollte alles gleich zum Nano sein. Oder ?
Es ist lange her, dass ich damit was gemacht hab.

Ich glaube die miso mosi Belegung könnte anders sein, muss also in Code angepasst werden.

Sieht für mich in der Tabelle der Bibliothek so aus

Hmm also laut des Pinlayouts das von „Gute_Laune“ verlinkt wurde stimmt das also alles.
Im Code sieht für mich auch alles gut aus.

Ich werde Mal versuchen, einen der Nanos zum laufen zu bekommen.
Evtl auf einem Rechner der nicht Windows 11 hat. Dann kann ich andere Treiber ausprobieren.

Woran erkenne ich denn im seriellen Monitor ob der RFID erkannt wird?
Habe im Forum beiträge gesehen die das in alten versionen ausgeben.

Dann kommt sowas:

Card Inserted
CardData: 00 00 00 00 00 00 00 00 00

Ich glaube es ging mehr um

Danach gab es das auch schon mal. Ist aber inzwischen leider wieder weg. Hier war es auf jeden Fall da

Ah ja, du müsstest dazu den Code ändern:
logger.hpp Zeile 9 auf s_debug stellen
Aber du hast den online Upload verwendet, da geht das natürlich nicht.
Aber eigentlich ist es auch so, dass, wenn du eine Karte auflegst und nichts passiert im Log, dann wurde der Reader nicht erkannt. Oder die Karte ist nicht kompatibel.

Ne, hab per Arduino IDE geflasht.

Meine Logger.hpp sieht so aus:

#ifndef SRC_LOGGER_HPP_
#define SRC_LOGGER_HPP_

#include "log.hpp"

DEFINE_LOGGER(tonuino_log , s_debug  , void);

DEFINE_LOGGER(init_log    , s_info   , tonuino_log);
DEFINE_LOGGER(card_log    , s_info   , tonuino_log);
DEFINE_LOGGER(play_log    , s_warning, tonuino_log);
DEFINE_LOGGER(standby_log , s_warning, tonuino_log);
DEFINE_LOGGER(state_log   , s_info   , tonuino_log);
DEFINE_LOGGER(button_log  , s_info   , tonuino_log);
DEFINE_LOGGER(modifier_log, s_warning, tonuino_log);
DEFINE_LOGGER(mp3_log     , s_info   , tonuino_log);
DEFINE_LOGGER(settings_log, s_info   , tonuino_log);

#endif /* SRC_LOGGER_HPP_ */

Hab den card_log (Zeile 9) Jetzt Mal auf s_debug geändert.
Jetzt kommt tatsächlich ein Communication Error:

12:36:02.289 ->  _____         _____ _____ _____ _____
12:36:02.289 -> |_   _|___ ___|  |  |     |   | |     |
12:36:02.336 ->   | | | . |   |  |  |-   -| | | |  |  |
12:36:02.336 ->   |_| |___|_|_|_____|_____|_|___|_____|
12:36:02.336 -> TonUINO Version 3.1 - refactored by Boerge1
12:36:02.336 -> 
12:36:02.336 -> created by Thorsten Voß and licensed under GNU/GPL.
12:36:02.336 -> Information and contribution at https://tonuino.de.
12:36:02.336 -> 
12:36:02.336 -> V3.1.3 03.08.23
12:36:02.336 -> 
12:36:02.368 -> Ver:2
12:36:02.368 -> Vol:25 5 15
12:36:02.400 -> EQ:1
12:36:02.400 -> LOC:0
12:36:02.400 -> ST:0
12:36:02.400 -> IB:1
12:36:02.400 -> AL:0
12:36:02.400 -> AP:1111
12:36:02.400 -> PCR:0
12:36:04.388 -> Volume: 15
12:36:04.575 -> Firmware Version: 0x0 = (unknown)
12:36:04.575 -> WARNING: Communication failure, is the MFRC522 properly connected?
12:36:04.575 -> enter Idle
12:36:04.575 -> Command: 6
12:36:04.575 -> enqueue mp3 262 0
12:36:04.575 -> play mp3 262

Ich tausche Mal den Uno aus. Hab noch einen anderen gefunden.
Alternativ hätte ich noch einen Leonardo Klon hier.
Ich probier Mal durch.

Danke schonmal für die Infos

Edit: Ich habe jetzt den UNO durch einen andern original UNO ausgetauscht. Gleiche Ausgabe.
Ich schau mir den Code Mal an und Prüfe die Pins sobald ich dazu komme.

Sonst mach doch mal Fotos von deinem Aufbau und den Lötstellen.
Benutzt du eigentlich zusätzliches Flussmittel beim Löten, wenn ja was?

So, jetzt hat es endlich funktioniert.

Bei allem Aufwand hat sich herausgestellt, dass 3 von 20 Jumperkabel defekt sind.
Da am RFID Leser 7 davon stecken, hat der wohl immer mindestens eines davon abbekommen.

Drauf gekommen bin ich durch die debug Ausgabe.
Mal wurde ne Firmware angezeigt Mal nicht. Trotzdem ging es nicht.

Kabel ausgetauscht und es geht alles wie gewünscht.

Zusätzlich habe ich die Nanos auf einem anderen Laptop Flashen können. Da dort Windows 10 und nicht Windows 11 installiert ist, ging das direkt mit den Treibern.

Auf Win 11 hatte ich trotzdem kein Glück.
Zumindest kann ich jetzt aber alles verwenden.

Für Zukünftige ARDUINO Uno Besitzer:
Der Aufbau funktioniert genauso auch wie beim Nano.
Es muss also kein MISO/MOSI Pin umgestellt bzw. getauscht werden wie weiter oben vermutet wurde.

VIELEN DANK für die Geduld und die HIlfestellungen.

Edit:
Habe gerade noch im Vorbeifliegen gelesen, dass der CH340 Chip Probleme mit USB 3 haben soll.
Da ich an meinem Gerät nur USB 3 Schnittstellen habe kann das natürllich auch das Problem sein. ICh werde versuchen einen USB 2 HUB zu bekommen ( Gibts sowas überhaupt noch :smiley: ) und Falls ich testen kann berichten

1 „Gefällt mir“