Environment:
-
NCS Version: v3.2.2
-
Board: nRF54L15 DK (
nrf54l15dk/nrf54l15/cpuapp) -
Library:
CONFIG_NFC_T4T_NRFXLIB=y(Type 4 Tag / ISO-DEP) -
Sample Tested:
nfc/writable_ndef_msg -
Poller: Samsung Galaxy S24 (NFC Tools and TagInfo)
The Problem: I am trying to use the T4T library to support a larger NDEF payload, but I cannot get the tag to survive multiple reads.
When tapping an Android phone, the very first read (or write) works perfectly. However, after pulling the phone away, the NFC state machine seems to permanently lock up. Any subsequent taps from the phone are completely ignored until the board is reset. (Note: Type 2 Tag examples seem to handle multiple taps without issue, this is isolated to T4T).
Things I have tried to fix it (None worked):
-
Software Stop/Start: Calling
nfc_t4t_emulation_stop()and thennfc_t4t_emulation_start()on a 500ms delay afterFIELD_OFF. -
Library Teardown: Calling
nfc_t4t_done()to completely uninitialize the library and rebuilding it from scratch. -
Hardware Teardown Override: Manually calling
nrfx_nfct_disable()andnrfx_nfct_uninit()to try and force the hardware to release its state. -
DeviceTree Timer: Adding
&timer24 { status = "okay"; };to my application overlay, as I noticed other nRF54 series chips use hardware timers to debounce field tears. -
Disabled Logging: Setting
CONFIG_LOG=nto ensure UART print statements aren't violating strict ISO-DEP microsecond timing.
Current Workaround: The only way I can get the tag to reliably respond to a second tap is by calling sys_reboot(SYS_REBOOT_COLD) immediately after the NFC_T4T_EVENT_NDEF_READ or UPDATED event finishes.
Questions:
-
Is this a known issue with the T4T library / Android field tears on the nRF54L15 in NCS v3.2.2?
-
Are there any specific configuration flags or patches I am missing to get the stock
writable_ndef_msgsample to handle multiple reads?