fix: send the magic UID frames exactly as the tag vendor documents - #2
Merged
Conversation
The rfidfriend.com instruction sheet shipped with the magic SLIX-L tags specifies `hf 15 raw -akrc` for both UID frames, step 1 = the 0x41 half (first four UID bytes), step 2 = the 0x40 half. This repo sent `-acw`, in the opposite order, and — worse — as two separate pm3 invocations, which drops the RF field between the halves and can leave the UID half-written. - build_uid_frames() now emits `-akrc` and returns the frames in vendor order; the byte mapping was already correct and is unchanged. - write_uid() and `doctor --probe-magic` pass both frames to a single pm3 session so `-k` can keep the field up between them. - HARDWARE.md: correct the flag reference, document the single-session requirement, and stop claiming that `csetuid` without `--v2` is harmless — the vendor warns against csetuid in any form, and the gen1 path writes config blocks 0x3E/0x3F. - CLAUDE.md: add the frame order/session invariant as a hard rule. - Tests cover the vendor sheet's worked example (E0 04 03 50 12 34 56 78) and assert both frames share one session. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012caw768bkSR8AKYiFQh77W
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The rfidfriend.com instruction sheet shipped with the magic SLIX-L tags
specifies
hf 15 raw -akrcfor both UID frames, step 1 = the 0x41 half(first four UID bytes), step 2 = the 0x40 half. This repo sent
-acw,in the opposite order, and — worse — as two separate pm3 invocations,
which drops the RF field between the halves and can leave the UID
half-written.
-akrcand returns the frames in vendororder; the byte mapping was already correct and is unchanged.
doctor --probe-magicpass both frames to a singlepm3 session so
-kcan keep the field up between them.requirement, and stop claiming that
csetuidwithout--v2isharmless — the vendor warns against csetuid in any form, and the gen1
path writes config blocks 0x3E/0x3F.
and assert both frames share one session.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_012caw768bkSR8AKYiFQh77W