Skip to content

feat(readers): support PN532Killer UART readers - #1158

Draft
treyturner wants to merge 1 commit into
ZaparooProject:mainfrom
treyturner:feat/pn532killer-support
Draft

feat(readers): support PN532Killer UART readers#1158
treyturner wants to merge 1 commit into
ZaparooProject:mainfrom
treyturner:feat/pn532killer-support

Conversation

@treyturner

Copy link
Copy Markdown

Summary

Complete the Zaparoo Core integration for PN532Killer UART readers.

Protocol and transport compatibility are implemented in the companion go-pn532 change:

This PR is intentionally a draft until that change is merged and released. The branch currently contains the Linux permission and installer integration. After the library release is available, a final commit will update the go-pn532 dependency without using a committed replace directive.

Changes

  • Add a dedicated Linux udev rule for devices matching:
    • Vendor 1a86
    • Product ID 55d3
    • Product string PN532Killer-UART
  • Grant group read/write access with mode 0660 and the uaccess tag.
  • Manage the existing and PN532Killer udev rules as separate files.
  • Install missing rule files without overwriting existing user-modified files.
  • Support upgrades where the original Zaparoo rule already exists.
  • Reload and trigger udev only when rule state changes.
  • Remove both managed rule files during hardware uninstall.
  • Update go-pn532 to the first released version containing PN532Killer support before marking this PR ready.

No new reader ID or configuration syntax is introduced. PN532Killer uses the existing native UART reader path, such as:

pn532_uart:/dev/ttyACM0

The legacy libnfc reader remains unchanged.

Validation

  • go test ./pkg/platforms/linux/installer
  • Added installer tests covering:
    • Fresh installation of both udev files
    • Upgrade from an existing original rule
    • Preservation of existing user-modified files
    • No-op reinstallation without a udev reload
    • Removal of both files during uninstall
  • Built Core locally against the companion go-pn532 branch using an uncommitted go.work.
  • Built and ran the MiSTer distribution with the embedded Zaparoo App.
  • Confirmed the configured PN532Killer reader opens through the existing PN532 UART driver.
  • Completed tag detection, NDEF reading, and NDEF writing through the running Zaparoo installation.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6b3b2912-b5ee-4e31-baa3-17a79c0a02e2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant