<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: NfcrdlibEx8_HCE_T4T example in NFC</title>
    <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2381614#M14300</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have further question related to this topic.&lt;/P&gt;&lt;P&gt;Even though I got our device to work as a type 4 card emulator with "&lt;SPAN&gt;NfcrdlibEx8_HCE_T4T" example, it seems very slow. The application steps are as below.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1. Device runs in the reader (polling) mode &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2. A phone is tapped and it reads a card in mobile wallet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3. Immediately turns off RF after reading finishes&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;4. Re-initialize the RF chip in HCE type 4 card emulator mode (passive listener mode)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;5. Sends a URL (NDEF) to the smart phone&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The issue is it takes about 1500ms to re-init the RF chip in card emulator mode and send the URL to smartphone.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is there a faster way to do this, so that user doesn't have to keep the phone holding/tapping ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When I searched on Google it says that it can be done via type 2 tag as below. But it didn't work. Nothing was received by the phone.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;│&lt;BR /&gt;▼&lt;BR /&gt;Step 1: Terminate Field&amp;nbsp;&lt;BR /&gt;│ (~1ms)&lt;BR /&gt;▼&lt;BR /&gt;Step 2: Load NDEF Data&amp;nbsp;&lt;BR /&gt;│ (~3ms)&lt;BR /&gt;▼&lt;BR /&gt;&lt;BR /&gt;Step 3: Go Autocoll&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Appreciate if you can guide me on how exactly I can achieve this fast mode switching and a URL is sent to a phone within 500ms.&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
    <pubDate>Tue, 16 Jun 2026 06:08:37 GMT</pubDate>
    <dc:creator>nddona</dc:creator>
    <dc:date>2026-06-16T06:08:37Z</dc:date>
    <item>
      <title>NfcrdlibEx8_HCE_T4T example</title>
      <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2372202#M14256</link>
      <description>&lt;P&gt;&lt;SPAN&gt;We have a custom Linux platform where we have successfully&amp;nbsp;made the PN5190 to work as a card reader for years. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Now we want to try out to make it work as a type 4A tag as in example "NfcrdlibEx8_HCE_T4T". We have tried to use the example with the reader library version 7.14.00 but we're getting the same results as reported in the thread:&amp;nbsp;&lt;A href="https://community.nxp.com/t5/NFC/HCE-T4T-Example-not-working-with-NXP-NFC-Library-v07-08-00-in/td-p/1686764" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/NFC/HCE-T4T-Example-not-working-with-NXP-NFC-Library-v07-08-00-in/td-p/1686764&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When Android (Samsung S23 ultra) is tapped with NXP "TagInfo" App, it's getting an invalid RATS. Rx buffer receives data starting with 0x11 0xD4 ... etc.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[phacDiscLoop_Sw_Run] Starting Listen Mode&lt;BR /&gt;[T4TCardEmulation] Card Activated in Listen mode...&lt;BR /&gt;[phpalI14443p4mC_Sw_Activate] RATS: 11 D4 00 8C 26 82 9B FA 12 01 DF 84 5B 00 00 00 30&lt;BR /&gt;[phpalI14443p4mC_Sw_Activate] Invalid RATS received...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is it because the phone is trying&amp;nbsp;to talk in&amp;nbsp;&lt;STRONG&gt;NFC-DEP (P2P Mode / SNEP)&lt;/STRONG&gt;?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Appreciate any help to resolve this issue.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 May 2026 05:01:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2372202#M14256</guid>
      <dc:creator>nddona</dc:creator>
      <dc:date>2026-05-28T05:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: NfcrdlibEx8_HCE_T4T example</title>
      <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2372819#M14260</link>
      <description>This issue is solved by disabling some macros and updating the SAK to correct value 0x20.</description>
      <pubDate>Fri, 29 May 2026 07:08:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2372819#M14260</guid>
      <dc:creator>nddona</dc:creator>
      <dc:date>2026-05-29T07:08:50Z</dc:date>
    </item>
    <item>
      <title>Re: NfcrdlibEx8_HCE_T4T example</title>
      <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2374562#M14272</link>
      <description>&lt;P&gt;Hello sir,&lt;/P&gt;
&lt;P&gt;Thank you for letting me know. I will address this for the respective clarifications and updates.&lt;/P&gt;
&lt;P&gt;Have a great day!&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jun 2026 18:36:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2374562#M14272</guid>
      <dc:creator>Fabian_R</dc:creator>
      <dc:date>2026-06-01T18:36:38Z</dc:date>
    </item>
    <item>
      <title>Re: NfcrdlibEx8_HCE_T4T example</title>
      <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2381614#M14300</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have further question related to this topic.&lt;/P&gt;&lt;P&gt;Even though I got our device to work as a type 4 card emulator with "&lt;SPAN&gt;NfcrdlibEx8_HCE_T4T" example, it seems very slow. The application steps are as below.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1. Device runs in the reader (polling) mode &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2. A phone is tapped and it reads a card in mobile wallet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3. Immediately turns off RF after reading finishes&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;4. Re-initialize the RF chip in HCE type 4 card emulator mode (passive listener mode)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;5. Sends a URL (NDEF) to the smart phone&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The issue is it takes about 1500ms to re-init the RF chip in card emulator mode and send the URL to smartphone.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Is there a faster way to do this, so that user doesn't have to keep the phone holding/tapping ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When I searched on Google it says that it can be done via type 2 tag as below. But it didn't work. Nothing was received by the phone.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;│&lt;BR /&gt;▼&lt;BR /&gt;Step 1: Terminate Field&amp;nbsp;&lt;BR /&gt;│ (~1ms)&lt;BR /&gt;▼&lt;BR /&gt;Step 2: Load NDEF Data&amp;nbsp;&lt;BR /&gt;│ (~3ms)&lt;BR /&gt;▼&lt;BR /&gt;&lt;BR /&gt;Step 3: Go Autocoll&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Appreciate if you can guide me on how exactly I can achieve this fast mode switching and a URL is sent to a phone within 500ms.&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jun 2026 06:08:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2381614#M14300</guid>
      <dc:creator>nddona</dc:creator>
      <dc:date>2026-06-16T06:08:37Z</dc:date>
    </item>
    <item>
      <title>Re: NfcrdlibEx8_HCE_T4T example</title>
      <link>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2381683#M14303</link>
      <description>&lt;P&gt;In related to my question above, the code I tried to implement after terminating the field as given below. I can get&amp;nbsp;phhalHw_Autocoll() to return success but I get 0x020A for&amp;nbsp;phhalHw_Pn5190_Instr_ExchangeRFData().&amp;nbsp;&lt;/P&gt;&lt;P&gt;phhalHw_Pn5190_Autocoll() is also updated with the below.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;phhalHw_Pn5190_Instr_SwitchModeAutocoll&lt;/SPAN&gt;&lt;SPAN&gt;(pDataParams,bRfTechnology,&lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;PHHAL_HW_PN5190_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY&lt;/STRONG&gt;&lt;/FONT&gt;))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int card_emulator_main_cutdown(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; do&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; phStatus_t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;status;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pHal_Hce = phNfcLib_GetDataParams(PH_COMP_HAL);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("NfcLib data params pointers set successfully");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_backhand-index-pointing-right" title=":backhand_index_pointing_right:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; STEP 3: STAGE EMULATION PROFILE AND LOAD URL PAYLOAD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("Configuring hardware target layers and loading URL buffer...");&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Configure target mode HAL parameters */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = phAppHce_HALConfigAutoColl();&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CHECK_STATUS(status);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (status != PH_ERR_SUCCESS) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE1("phhalHw_TargetInit failed: 0x%04X", status);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return status;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_backhand-index-pointing-right" title=":backhand_index_pointing_right:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; STEP 4: ENGAGE AUTOCOLL (Autonomous Listening State) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("Entering sub-100ms Autonomous Listen mode...");&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CRITICAL FIX: Allocate valid storage memory to prevent PH_ASSERT_NULL crashes&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint8_t * pRxBufferPtr = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint16_t &amp;nbsp;wRxLengthData = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint16_t &amp;nbsp;wProtocolParams = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Execute the function mapping strictly to your HAL's parameter footprint.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // We pass 'A_MODE' to tell the switch code to select Passive NFC-A Technology.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = phhalHw_Autocoll(&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pHal_Hce,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A_MODE, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Bitmask flag forcing NFC-A technology profiling&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;pRxBufferPtr, &amp;nbsp; &amp;nbsp; &amp;nbsp;// Passed as a valid pointer reference to a pointer&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;wRxLengthData, &amp;nbsp; &amp;nbsp; // Passed as a valid pointer reference to length&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;wProtocolParams &amp;nbsp; &amp;nbsp;// Passed as a valid pointer reference to parameters&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((status &amp;amp; PH_ERR_MASK) == PH_ERR_SUCCESS) {&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("&lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_rocket" title=":rocket:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; Tap-to-URL switch executed perfectly! Phone hit the antenna field.");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE1("De-wrapped Activation Protocol Parameters: 0x%04X", wProtocolParams);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_backhand-index-pointing-right" title=":backhand_index_pointing_right:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; STEP 5: PROCESS INCOMING APDU COMMANDS FROM THE PHONE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* ================================================================= */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("Listening for phone file system read commands...");&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Allocate data exchange buffers&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint8_t * pDataIn = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uint16_t &amp;nbsp;wDataInLen = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Retrieve the initial data packet the phone transmitted right upon activation&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Your Autocoll snippet already stores the address in pRxBufferPtr / wRxLengthData&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pDataIn = pRxBufferPtr;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wDataInLen = wRxLengthData;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Enter a rapid loop to process the phone's Read commands&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // The phone will send "Select NDEF Application" -&amp;gt; "Select NDEF File" -&amp;gt; "Read Binary"&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //while (1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Use the correct Target Emulation transmit function to bypass the 0x0225 check&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //PH_RECEIVE_RF_ENABLE_EVT_STATUS enables event tracking for the transfer&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = phhalHw_Pn5190_Instr_ExchangeRFData(&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pHal_Hce,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PH_EXCHANGE_DEFAULT, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// wOption&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// bTxLastBits (0 indicates complete 8-bit byte layout)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x05, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // bRespControl: Bitmask 0x04 (Event Status) | 0x01 (Rx Status)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; aNdefFile, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Your URL array structure&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 23, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Size of your URL data payload&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;pRxBufferPtr, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Address of your response data pointer&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;wRxLengthData &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Address of your incoming length tracker&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (status == PH_ERR_SUCCESS) {&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE0("&lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_party-popper" title=":party_popper:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; Single-shot URL packet injected successfully. Task complete!");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE1("Injection status / timeout: 0x%04X (Phone likely disconnected cleanly)", status);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRACE1("Autocoll exited, timed out, or dropped with status: 0x%04X", status);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; } while(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// /* Mandatory NDEF file. It's set using phceT4T_SetElementaryFile. */&lt;/P&gt;&lt;P&gt;uint8_t aNdefFile[] = {&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; /* --- &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_backhand-index-pointing-right" title=":backhand_index_pointing_right:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; MANDATORY CONTACTLESS TRANSPORT HEADER --- */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; //0x02, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 1. PCB Byte: Configures this frame as a Part 4 I-Block (Block Number 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x00, 0x13, // 1. T4T Container Length Indicator (19 bytes total payload)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0xD1, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 2. NDEF Record Header (MB=1, ME=1, SR=1, TNF=0x01 Well-Known Type)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x01, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 3. Type Length (1 byte long name)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x0F, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 4. Payload Length (15 bytes for prefix + string)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x55, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 5. Record Type: 'U' (0x55 for URI record)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x02, &amp;nbsp; &amp;nbsp; &amp;nbsp; // 6. URI Identifier Prefix: Code 0x02 maps to "&lt;A href="https://www." target="_blank" rel="noopener"&gt;https://www.&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; // 7. URI Payload String of 14bytes&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0xww, 0xww, 0xww, 0xww, 0xww, 0xww,&amp;nbsp;0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* --- &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_backhand-index-pointing-right" title=":backhand_index_pointing_right:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; MANDATORY SMART CARD STATUS TRAILER --- */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; 0x90, 0x00 &amp;nbsp;// 21-22. APDU Success Status (tells Android the data read is complete)&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;Log output:&lt;/P&gt;&lt;P&gt;06-16 17:34:31.600 26047 27687 E nfc : [card_emulator_main_cutdown] NfcLib data params pointers set successfully&lt;/P&gt;&lt;P&gt;06-16 17:34:31.600 26047 27687 E nfc : [card_emulator_main_cutdown] Configuring hardware target layers and loading URL buffer...&lt;/P&gt;&lt;P&gt;06-16 17:34:31.605 26047 27687 E nfc : [card_emulator_main_cutdown] Entering sub-100ms Autonomous Listen mode...&lt;/P&gt;&lt;P&gt;06-16 17:34:31.607 26047 27999 V nfc : [socket_send_thread] Entered socketSend&lt;/P&gt;&lt;P&gt;06-16 17:34:31.607 26047 27999 V nfc :&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;06-16 17:34:32.456 26047 27687 E nfc : [card_emulator_main_cutdown] &lt;/SPAN&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_rocket" title=":rocket:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;SPAN&gt; Tap-to-URL switch executed perfectly! Phone hit the antenna field.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;06-16 17:34:32.456 26047 27687 W nfc : [card_emulator_main_cutdown] De-wrapped Activation Protocol Parameters: 0x0100&lt;/P&gt;&lt;P&gt;06-16 17:34:32.456 26047 27687 E nfc : [card_emulator_main_cutdown] Listening for phone file system read commands...&lt;/P&gt;&lt;P&gt;06-16 17:34:32.456 26047 27687 W nfc : [card_emulator_main_cutdown] Injection status / timeout: 0x020A (Phone likely disconnected cleanly)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jun 2026 08:02:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/NfcrdlibEx8-HCE-T4T-example/m-p/2381683#M14303</guid>
      <dc:creator>nddona</dc:creator>
      <dc:date>2026-06-16T08:02:38Z</dc:date>
    </item>
  </channel>
</rss>

