Skip to content

Add NTAG424 DNA / NFC Forum Type 4 NDEF support #89

Description

@wizzomafizzo

Summary

Zaparoo core issue ZaparooProject/zaparoo-core#815 reports NTAG424 cards not reading/writing through PN532 on Windows, while Android works.

Current go-pn532 NTAG support appears focused on NFC Forum Type 2 NTAG21x chips (NTAG213/215/216), using Type 2 page commands such as READ 0x30, WRITE 0xA2, and page-3 capability container parsing. NTAG424 DNA is NFC Forum Type 4 / ISO-DEP / ISO/IEC 7816-4, so it needs APDU-based NDEF access instead of Type 2 commands.

Evidence from core issue

Reported Zaparoo Windows log:

new tag detected: UNKNOWN (043b1a82161690)
MIFARE tag details: type=Unknown variant=MIFARE Classic (unknown size) sectors=16 totalMemory=1024 manufacturer=NXP
tag has no NDEF records - may be blank or incompatible format
error launching token: failed to parse script: script is empty

Reporter results:

  • iOS Zaparoo app: write/read error, but NFC Tools can read/write
  • Windows + PN532 USB: write/read error, including when written by third-party app
  • Android Zaparoo app: read/write succeeds

Android success suggests plain NDEF on the card is valid; PN532 path lacks Type 4 handling.

Requested work

Add plain NFC Forum Type 4 Tag NDEF support, enough for NTAG424 DNA cards.

Likely scope:

  • Detect ISO14443A Type 4 / ISO-DEP tags distinctly from Type 2 NTAG and MIFARE Classic.
  • Add APDU exchange support if current lower-level primitives are insufficient.
  • Implement NFC Forum Type 4 NDEF flow:
    • select NDEF application (D2760000850101)
    • select/read Capability Container file
    • select NDEF file from CC
    • read NDEF length and payload via READ BINARY
    • write NDEF length/payload via UPDATE BINARY, if writable
  • Expose a tag type/info name that downstream apps can map/log clearly (for example Type4, ISO_DEP, or NTAG424 if identification is specific enough).
  • Add tests using APDU transcripts for read/write and detection.

Out of scope for initial support

NTAG424 DNA secure features (SUN/SDM, AES authentication, encrypted files, secure messaging) should be separate work. Initial request is plain NDEF compatibility.

Downstream follow-up

After go-pn532 supports this, zaparoo-core can bump the dependency and map/log the new tag type correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions