This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NFC not working with some phones like iPhone 11

I am using nRF52832 SDK 15.3 and type 4 tag and some phones like iPhone 11 and Samsung S20+ are not able to detect the tag.  The tag works with other phones so I don't think it is a hardware problem.  I don't see the NFC_T4T_EVENT_FIELD_ON event.  I just see some NFC_T4T_EVENT_FIELD_OFF events.  I am doing initialization like this:

nfc_t4t_setup(nfc_callback, NULL);

Do I need to modify any parameters when initializing?

Parents
  • Hi,

    I see the same on my side when testing the writable_ndef_msg example. The NFC_T4T_EVENT_FIELD_ON event is never received, perhaps because it seems the field goes on and off quite fast. I see this behavior using iPhone 11, but not using another Android phone for comparison.

    For reference, this is a log where I use the writable_ndef_msg example from SDK 15.3 with the only modification that I also log NFC_T4T_EVENT_FIELD_ON and NFC_T4T_EVENT_FIELD_OFF when detected in nfc_callback() in main.c:

    <debug> ndef_file_m: FDS event 0 with result 0.
    <info> ndef_file_m: NDEF file record not found, default NDEF file created.
    <debug> ndef_file_m: FDS event 1 with result 0.
    <info> ndef_file_m: FDS write success.
    <debug> nfc_platform: Utils init
    <info> app: Writable NDEF message example started.
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    <debug> nfc_platform: Field detected
    <debug> nfc_platform: Field lost
    <info> app: NFC_T4T_EVENT_FIELD_OFF
    ...

    I need to look into this a bit and get back to you.

    Update: This is likely related to how the iPhone 11 detects the tag, where it uses very short NFC pulses. This seems to be less of a problem with the NFC driver in SDK 16 and 17, so I suggest you consider migrating if possible.

  • Thank you.  I updated to the SDK 17 NFC and it is working.  I do not want to migrate my entire app to SDK 17.  I just replaced the following with files from SDK 17.  Is this sufficient just to update NFC functionality?

    nrfx_nfct.c

    nrfx_nfct.h

    nfc_t4t_lib_keil.lib

    nfc_t4t_lib.h

Reply Children
Related