NFC Tag Not Detected: Diagnosis Guide
Step-by-Step Diagnosis When Tags Won't Read
Systematic approach to diagnosing why NFC tags are not being detected covering device settings, tag compatibility, and hardware issues.
NFC Tag Not Detected: Step-by-Step Diagnosis
A tag that fails to read can stem from six completely different root causes — RF physics, chip damage, NDEF formatting, OS-level permissions, reader firmware, or environmental interference. This guide walks through each layer systematically so you fix the actual cause rather than guess.
Layer 1: Physical and RF Check
Start at the antenna. Coupling between the reader coil and the tag antenna depends on alignment, distance, and conductor proximity.
| Symptom | Likely Cause | Test |
|---|---|---|
| Reads at one orientation, not another | Antenna axis mismatch | Rotate tag 45° increments |
| Reads close, not at expected read-range | Detuned tag antenna or metal proximity | Test on non-metal surface |
| Intermittent reads (≥50% success) | Marginal coupling, thin adhesive gap | Use a spacer or on-metal-tag |
| Never reads on any reader | Chip damaged, antenna broken, OTP permanently locked | Test with a known-good blank |
The operating-frequency is 13.56 MHz. Metal within 3 mm of a standard inlay detunes the resonant circuit drastically. If your tag is near metal, switch to a ferrite-backed on-metal-tag designed for that environment.
Layer 2: Verify the Chip is Alive
Use a dedicated NFC reader app (NFC TagInfo by NXP on Android) or a development reader such as the PN532. A chip that returns a valid uid during anti-collision is electrically functional even if the NDEF data is corrupt.
PN532 scan output — healthy tag:
Found 1 ISO14443A card: UID: 04 A3 B7 21 C4 56 80
ATQA: 0x4400 SAK: 0x00 (NTAG215)
PN532 scan output — no tag / dead chip:
No card detected within timeout
If no UID appears, the chip is either dead, delaminated from the antenna, or facing a anti-collision collision from a nearby second tag.
Layer 3: NDEF Formatting Issues
A physically healthy chip may still fail to trigger OS-level tag dispatch if its capability-container is corrupt or the NDEF tlv is malformed.
Common NDEF faults:
| Fault | Symptom on Android/iOS | Fix |
|---|---|---|
| Capability Container not written | Tag detected, no Intent fired | Format tag with NFC Tools app |
| TLV length field mismatch | App opens but data garbled | Re-encode with NDEF Encoder |
Terminator TLV 0xFE missing |
Partial read, some readers fail | Re-write full NDEF payload |
| ndef message exceeds total-memory | Write succeeds, read fails | Use Memory Calculator |
| OTP area written incorrectly | Tag permanently unresponsive | Tag is bricked; discard |
Paste the raw hex dump from NFC TagInfo into the NDEF Decoder to identify exactly where the parse fails.
Layer 4: OS and App Permissions
Even a perfectly encoded tag is invisible if the OS NFC stack is off or an app lacks permissions.
Android checklist:
- Settings → Connected devices → NFC → enabled
- Settings → Connected devices → NFC → Contactless payments → does your app intercept the intent?
- android.permission.NFC declared in manifest and granted
- android:launchMode — singleTop required to receive onNewIntent() re-reads
iOS checklist:
- Background tag reading requires iOS 14+ and entitlement com.apple.developer.nfc.readersession.formats
- Core NFC session must be active (user action required to start)
- NTAG 424 DNA SDM with SUN message requires iOS 14 or later
- Tag type must be NDEF-formatted — ISO 7816 raw APDU sessions require separate NFCTagReaderSession
Layer 5: Reader Firmware and Configuration
Reader-side issues are commonly misdiagnosed as tag faults.
- RF field not enabled: Some PN532 configurations keep the field off between transactions to save power; add a
SetParameterscommand to keep the field active. - Protocol mismatch: A Type 5 tag (iso-15693) will not respond to an iso-14443 poll. Ensure your reader polls all target types: Type 1/2/3/4 (ISO 14443) and Type 5 (ISO 15693).
- Timeout too short: NTAG 424 DNA with AES authentication requires 3–4 round-trips; a 50 ms timeout will always fail.
- Baud rate selection: NFC-F operates at 212 or 424 kbit/s; not all readers default to polling both speeds.
Layer 6: Environmental Interference
| Interference Source | Effect | Mitigation |
|---|---|---|
| Nearby second NFC tag | anti-collision arbitration may select wrong tag | Separate tags by ≥ 5 cm |
| Strong EM field (motor, inverter) | Corrupted RF waveform | Shield or relocate reader |
| Multiple readers active | Cross-field modulation | Time-multiplex reader activation |
| Thick metal enclosure | Total signal absorption | External antenna or on-metal-tag |
Diagnostic Decision Tree
Tag not detected
├── UID detected by raw NFC tool?
│ ├── No → Physical / chip issue (Layer 1-2)
│ └── Yes
│ ├── NDEF parse error in NFC TagInfo?
│ │ ├── Yes → NDEF formatting issue (Layer 3)
│ │ └── No
│ │ ├── OS permission or NFC disabled? (Layer 4)
│ │ └── Reader firmware / config issue (Layer 5)
└── Multiple tags in field? → Anti-collision / spacing (Layer 6)
See Also
Frequently Asked Questions
Our guides cover a range of experience levels. Getting Started guides are written for beginners with no prior NFC knowledge. Programming guides target developers integrating NFC into mobile apps or embedded systems. Security guides are for engineers designing secure NFC deployments for payments, access control, or authentication.
Most guides require only an NFC-enabled smartphone (iPhone 7+ or any modern Android device) and a few NFC tags (NTAG213 or NTAG215 recommended for beginners, available for under $1 each). Advanced guides may reference USB NFC readers like the ACR122U or Proxmark3 for development and testing.
Yes. Programming guides include code examples for Android (Kotlin/Java with the Android NFC API), iOS (Swift with Core NFC), and web-based tools (Web NFC API for Chrome on Android). All code samples are tested and include inline comments explaining each step.