Skip to content

Checksum validation error on RFID 125khz #2014

@yageek

Description

@yageek

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; --> disabling

This 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions