fix(pn532): restore Apple Wallet Express Mode polling - #3
Merged
Ruhanpaco merged 1 commit intoAug 18, 2026
Merged
Conversation
Use the PN532’s correct ECP sequence, drain the expected timeout response, enable ECP by default, and refresh the beacon after Matter reader identity changes.
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
grapefizz
marked this pull request as ready for review
August 18, 2026 17:53
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.
What changed
CIU_BitFramingbefore the raw frameInCommunicateThrutimeout response so the next poll remains synchronizedWhy
The previous ECP path rewrote CRC and RF timeout registers, omitted the required bit-framing write, and sent the beacon before Type-A discovery configured the PN532. That left the command stream out of sync, causing every following
InListPassiveTargetcommand to fail with0x4A: no ACK.This follows the working PN532 ECP cadence: ordinary Type-A poll, byte-aligned ECP broadcast when no target is found, then the next Type-A poll.
Impact
Apple Wallet can automatically present the provisioned Aliro credential while the phone is locked instead of requiring the user to open Wallet and select it first. The corrected path still needs confirmation on the physical test lock before it is described as hardware-verified.
Validation
./tools/check_consistency.py— 0 problems, 0 notesgit diff --check upstream/main...HEADESP-IDF is not installed in the local environment, so a full firmware build was not run locally.