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

  • Hi,

    I assume this should be enough yes. There are also other NFC related files in the SDK (which you may or may not use in your custom firmware), but the files you list handle what is relevant here. Did you make it work?

Reply Children
Related