Hi,
I figured it out partly:
//example code:
String input = "d73f7a79";
byte string_chunk_bytes[9];
input.getBytes(string_chunk_bytes, 9);
status = mfrc522.MIFARE_Ultralight_Write(i, string_chunk_bytes, 8);
the last line sends the data to the MIFARE chip.
The code above is just a simple example. In reality there are more strings that are separated in "chunks" of 8 characters (-> "d73f7a79").
Via for-loop "string_chunk_bytes" is generated several times and sent to different address pages of the chip.
Long story short: the output of strin_chunk_bytes:
11b701e0
bdb8b0d7
76f2c520
c9748ade
57c1be9a
.
.
.
and the result, when I read the newly written data of the chip (Page 6 to 15):
Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...
Card UID: 04 93 D4 12 5F 70 80
Card SAK: 00
PICC type: MIFARE Ultralight or Ultralight C
Page 0 1 2 3
0 04 93 D4 CB
1 12 5F 70 80
2 BD 48 00 00
3 E1 10 3E 00
4 03 00 FE 00
5 00 00 00 00
6 31 31 62 37
7 62 64 62 38
8 37 36 66 32
9 63 39 37 34
10 35 37 63 31
.
.
.
As you can see, MFRC522 changes "my" bytes (e.g. the first pair: 11) to ASCII-hex 31 and 31...
"my" "b" changes to "62" and so on...
Is there a way to send the data "unchanged" to the chip?
Desired result:
Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...
Card UID: 04 93 D4 12 5F 70 80
Card SAK: 00
PICC type: MIFARE Ultralight or Ultralight C
Page 0 1 2 3
0 04 93 D4 CB
1 12 5F 70 80
2 BD 48 00 00
3 E1 10 3E 00
4 03 00 FE 00
5 00 00 00 00
6 11 B7 01 E0
7 BD B8 B0 D7
8 76 F2 C5 20
9 C9 74 8A DE
10 57 C1 BE 9A
.
.
.
Thank you so much!