RFID Card funktioniert nicht

Ich habe so einen blauen RFID Chip dessen UID ich gerne ändern möchte. Ich würde gerne die selbe UID haben wie ein anderer Chip. Nun habe ich unter anderen das Programm von der MFRC522 Library Examples namens ChangeUID genutzt. Der kann auch die jetzige UID lesen und so weiter. Wenn ich jetzt aber die UID ändern möchte, kommt:
"PCD_Authenticate() failed: Timeout in communication."
Ich habe es auch zum Beispiel mit dem RFID-Cloner probiert, kommt aber das gleiche heraus. Woran liegt das? Danke schonmal im Vorraus!

Den Code habe ich einfach mal angehängt:

/*
 * --------------------------------------------------------------------------------------------------------------------
 * Example to change UID of changeable MIFARE card.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * 
 * This sample shows how to set the UID on a UID changeable MIFARE card.
 * 
 * @author Tom Clement
 * @license Released into the public domain.
 *
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 *
 * More pin layouts for other boards can be found here: https://github.com/miguelbalboa/rfid#pin-layout
 */

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN   9     // Configurable, see typical pin layout above
#define SS_PIN    10    // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance

//Gelesene UID (D): 84 C5 E4 85
//Gelesene UID (J): 01 02 03 04



/* Set your new UID here! */
#define NEW_UID {0x84, 0xC5, 0xE4, 0x85}

MFRC522::MIFARE_Key key;

void setup() {
  Serial.begin(9600);  // Initialize serial communications with the PC
  while (!Serial);     // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
  SPI.begin();         // Init SPI bus
  mfrc522.PCD_Init();  // Init MFRC522 card
  Serial.println(F("Warning: this example overwrites the UID of your UID changeable card, use with care!"));
  
  // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory.
  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }
}

// Setting the UID can be as simple as this:
//void loop() {
//  byte newUid[] = NEW_UID;
//  if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) {
//    Serial.println("Wrote new UID to card.");
//  }
//  delay(1000);
//}

// But of course this is a more proper approach
void loop() {
  
  // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. And if present, select one.
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
    delay(50);
    return;
  }
  
  // Now a card is selected. The UID and SAK is in mfrc522.uid.
  
  // Dump UID
  Serial.print(F("Card UID:"));
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  } 
  Serial.println();

  // Dump PICC type
//  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
//  Serial.print(F("PICC type: "));
//  Serial.print(mfrc522.PICC_GetTypeName(piccType));
//  Serial.print(F(" (SAK "));
//  Serial.print(mfrc522.uid.sak);
//  Serial.print(")\r\n");
//  if (  piccType != MFRC522::PICC_TYPE_MIFARE_MINI 
//    &&  piccType != MFRC522::PICC_TYPE_MIFARE_1K
//    &&  piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
//    Serial.println(F("This sample only works with MIFARE Classic cards."));
//    return;
//  }
  
  // Set new UID
  byte newUid[] = NEW_UID;
  if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) {
    Serial.println(F("Wrote new UID to card."));
  }
  
  // Halt PICC and re-select it so DumpToSerial doesn't get confused
  mfrc522.PICC_HaltA();
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
    return;
  }
  
  // Dump the new memory contents
  Serial.println(F("New UID and contents:"));
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  
  delay(2000);
}

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

1 Like

Nimm andere Karte wo möglich ist die schreibgeschützt.

Eigentlich ist das extra eine wieder-beschreibbare sein. Ich habe eine die man nicht beschreiben kann und dann steht das auch da als Meldung. Hier liegt ein anderes Problem vor.

imho
writeable /= uid changeable

welche Karte hast du genau?

Wie schon erwähnt wurde: Beschreibbar heißt nicht, dass die UID veränderbar ist.
"Normale" Mifare Karten können ca. 1K Daten speichern, aber die UID ist fix und nicht änderbar.
Du kannst diesen Datenbereich nutzen, um deine eigene "Identifikationsnummer" dort zu speichern. Die kannst du auch mehrmals vergeben.

Es gibt Karten, wo die UID verändert werden kann, diese sind im Vergleich zu "normalen" Karten aber relativ teuer (normale Karte Größenordnung ein paar Cent / Karte wo die UID geändert werden kann Größenordnung deutlich mehr als € 10 pro Stück).

RFID-Sets (wie z.B. solche) haben im Allgemeinen keine Karten dabei, wo die UID veränderbar ist.

Siehe auch hier: How to change the Card UID of individual rfid tags

2 Likes

Ok vielen Dank! Gibt es jetzt also keine Möglichkeit diesen neuen Chip genauso zu verwenden wie den alten, also ihn zu klonen sozusagen?

du musst nur die neue UID auch dem Empfänger als gültige UID bekannt geben.

Ich hätte noch Chips (keine Karten, sondern diese Plastik-Chips wie sie den RFID-Sets beiligen, wie Schlüsselanhänger) bei mir, die eine programmierbare UID haben in verschiedenen Farben. Wieviele bräuchtest Du denn?

Mit dem Kartentyp, den Du hast, nicht.
Grüße Uwe

Wo hast du die denn gekauft?

Bei mir in der Schweiz, Ein Händler hat mir die auf meinen Wunsch hin besorgt , da ich eine bestimte Anzahl unterschiedlicher Farben und pro Farbe eine bestimmte Menge brauchte. Da ich wesentlich mehr Chips geordert habe, als ich dann im dafür vorgesehen Projekt schlussendlich zum einsatz kamen wurden, habe ich eben jetzt noch eine Menge davon da. Mein Händler hat die bei seinem Grosshändler eingekauft Hatte da 120 Stück auf einmal abgenommen und deshalb einen guten Preis bekommen. Ichkann dir alsowelcheanbieten, über den Preis würden wir sicher einig werden. Darum fragte ich,wieviele du denn brauchen würdest.

zB beim freundlichen Asiaten:
https://de.aliexpress.com/item/1005003570378379.html
10 St um 5,78+2,87€
(Das erste Angebot das ich gefunden habe)

Grüße Uwe

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.