-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Seems that the validation checksum is incorrect for some 125khz tags using a RDM6300 device.
If I plugged the RDM6300 to an Arduino (like explained on this post), I am able to read the content with no issues.
Steps To Reproduce:
Try to read a blank 125khz tag and see it is not working.
Expected behavior:
Tag data should be displayed properly.
Actual behavior:
Tag data are not shown at all
Additional context / logs:
With the current code in master, I am able to read the content of this tag:
# Checksum considered as OK
Filetype: Bruce RFID 125kHz File
Version 1
DATA: 02 30 30 30 34 31 34 43 44 37 45 41 33 03
ASCII: 00 04 14 CD 7E
CHECKSUM: A3
To get the data from the tag not shown, I used a custom firmware where I disabled the checksum validation
in rfid125.cpp:
/* xore the tag_id and validate checksum */
for (uint8_t i = 0; i < 32; i += 8) checksum ^= ((tag_id >> i) & 0xFF);
// if (checksum) return false; --> disablingThis tag content data now shows up:
#Checksum considered as invalid
Filetype: Bruce RFID 125kHz File
Version 1
DATA: 02 30 31 43 38 46 30 30 38 30 30 33 31 03
ASCII: 01 C8 F0 08 00
CHECKSUM: 31
Taking a look at the content data from the invalid tag, the checksum for 01 C8 F0 08 00 is in deed 31.
I do not get why the checksum is wrongly computed.