ich habe meinen ersten Tonuino fertig. Danke noch mal an Thorsten und die tolle Community die es mir sehr einfach gemacht hat das Projekt nachzubauen.
Jetzt habe ich zur Zeit meine RFID Karten auf Einzel-Lieder programmiert.
Das ist mit mehr als 10 Karten dann doch sehr viel Tastendrückerei um die Karten zu beschreiben. Jetzt habe ich im Monitor gesehen, was so auf der Karte draufsteht und das ist ja nicht viel.
Könnte man diese Bytes nicht auch mit einem NFC fähigem Handy schreiben?
Ich habe auf Android das Tool NFC-Tools Pro installiert. Damit kann ich auch die Daten auslesen, aber ich hab noch nicht kapiert wie ich damit schreiben kann.
Kennt da jemand was?
Oder gibt es noch andere Alternativen?
Ich werde im Adminmenü einen Punkt einbauen um Karten für einen Ordner (und da eine Auswahl der Dateien von bis) zu beschreiben… du musst die dann also nur der Reihenfolge nach drauf legen
Ich nutze auch größtenteils den Einzelmodus und habe bereits zwei TonUINOs und mache daher auch zwei Karten-Sets. Ich habe nun versucht das ganze per “PC” zu machen. Im moment bin ich soweit dass ich mit einem Rapsberry Pi die Karten beschreiben kann. Diese werden dann auch korrekt beschrieben und können dann vom TonUINO gelesen werden. Falls du daran interesse hast: #Inbetriebnahme von RC522 am PI
#im Write.py folgendes anpassen
# Erweiterung TonUINO
modus = int(input("Modus: 1. Hörspielmodus 2. Album Modus 3. Party Modus 4. Einzel Modus 5. Hörbuch Modus")) ordner = int(input("Ordner?"))
lied = int(input("Lied Nummer?"))
# Variable for the data to write
data = [19, 55, 179, 71, 1, (ordner), (modus), (lied), 0, 0, 0, 0, 0, 0, 0, 0]
# Fill the data with 0xFF
#for x in range(0,16):
# data.append(0xFF)
print "Sector 8 looked like this:"
# Read block 8
MIFAREReader.MFRC522_Read(4)
print "\n"
#print "Sector 8 will now be filled with 0xFF:"
# Write the data
MIFAREReader.MFRC522_Write(4, data)
#print "\n"
print "It now looks like this:"
# Check to see if it was written
MIFAREReader.MFRC522_Read(4)
print "\n"
Bitte nur als ersten Entwurf verstehen.
@Thorsten
beim auslesen der Karten ist im Sektor 4 folgendes durch den TonUNIO geschrieben:
19, 55, 179, 71, 1, 7, 4, 5,
die letzten drei Bereiche (7,4,5) habe ich verstanden aber was ist das davor? Der Teil ist bei allen Karten gleich.
Wir schrieben in Sektor 1 Block 4. Nicht Sektor 4. Die ersten 4 Byte sind ein Cookie um die Karten wieder zu erkennen. Byte 5 ist eine Versionsnummer (aktuell immer 0x01). Danach kommen die von Dir bereits genannten 3 Byte. In der zukünftigen Firmware auch noch ein paar mehr.
Danke für die schnelle Antwort:
Aber bei meiner Untersuchung kam heraus, dass die ersten 5 Bereiche statisch sind. Dies passt ja auch zu deiner Aussage. Aber dann kommt 6: Ordner 7:Modus 8:Tracknummer (nur bei Einzelmodus und der Wert ist 7 falls es nicht Einzelmodus ist)
Kannst du dies so bestätigen?
P.S. ich bin kein Programmierer, ich mach es nach Try & Error. Bitte also um Nachsicht für Fehler.
Also, Aktuell ist das so (jetzt nochmal richtig, die Grafik eben war verkehrt):
13 37 B3 47 01 02 05 02 00 00 00 00 00 00 00 00
----------- -- -- -- --
| | | | |
| | | | +track (0x01-0xFF), nur für den Einzelmodus
| | | +assigned mode (0x01-0x05), der Wiedergabemodus
| | +assigned folder (0x01-0x63), der zugewiesene Ordner
| +version, momentan immer 0x01
+magic cookie, damit TonUINO die Karten wiedererkennt
Byte 8 (also der Track) sollte nur einen Wert haben wenn Byte 7 (Modus) gleich 0x04 (Einzelmodus) ist. Wenn ein anderer Modus gesetzt ist, sollte dort 0x00 stehen. Bei meiner Firmware ist das so. Da Thorsten die Karten aber nicht löscht beim neubeschreiben, kann es sein, dass dort was über bleibt. Das ist unschön, schadet aber theoretisch nicht, weil es nicht ausgewertet werden sollte.
In der neuen Firmware wird da noch was dabei kommen, für die Spezial Modi etc.
Okay Thorsten, danke für die Info. Sobald ich die neue Version im Einsatz habe (mach ich die nächsten Tage) passe ich es im Skript an. Das Skript ist soweit Einsatz fähig. Download unter: https://gindl.my-router.de/index.php/s/32DASbzrN9DsKoR
Wenn ich dir noch einen Tip geben darf: Dein Script hat als Ausgabe überall Sektor 8. Das ist verkehrt und führt bei Nutzern zu Verwirrung. Wir schreiben in Sektor 1 / Block 4.
Guten Abend zusammen,
ich habe bei dieser Diskussion ein Problem mit den Sector und Block Numerierung. Ich habe auf meinem Handy mal das Tool „MIFARE Classic Tool“ installiert und eine leere und eine beschriebene Karte ausgelesen. Wenn ich die Karte beschreibe, muss ich in Sector 1 / Block 0 schreiben. Dann liest
die Software das auch richtig. Verstehe ich da was falsch oder verwende ich eine andere Software?
Deine Software nummeriert die Blöcke innerhalb der Sektoren immer neu. 0|0123, 1|0123, 2|0123 etc. Die Angabe Sektor 1 / Block 4 bezieht auf den Dump Info Sketch der RFID Library. Also auf den absoluten Block (die zählt die Blöcke einfach stur hoch). In deiner Rechnung also Sektor 1 / Block 0.
Alles in allem ist Sektor 1 Block 0 eigentlich auch logischer. Aber nun…
@nanos und @stephan: vielen Dank für eure schnelle Antwort. Jetzt ist mir das mit den Nummern klar. Liegt also wie so oft an der Software. Gibt es da keine Norm drüber? Bei uns ist doch sonst fast alles „genormt“
Die Software für das Handy ist übrigens prima. Vielen Dank an den Ersteller.
Noch eine Frage zu den Karten. Ich habe eine Karte, bei der dreht sich der Arduino wohl im Kreis. Beim Auflegen blinken alle LEDs. Wenn ich sie an das Handy halte, erhalte ich vom TonUINO Tool die Meldung: Konnte keine Daten vom NFC Tag lesen.
Das MIFARE Tool zeigt mir aber gültige Daten an. Kann ich die Karte noch irgendwie retten oder besser wegschmeißen?
In der Konsole wurde immer nur folgendes ausgegeben:
Card UID: EC 50 A2 54
PICC type: MIFARE 1KB
Authenticating Classic using key A…
PCD_Authenticate() failed: Timeout in communication.
Habe jetzt folgendes gemacht:
mit MIFARE von einer korrekten Karte einen kompetten Dump gezogen
diesen Dump komplett auf die defekte Karte geschrieben
jetzt funktioniert die Karte wieder.
Wenn also jemand mal eine defekte Karte hat, wäre das vielleicht eine Hilfe.