ST25DV04KC FTM Mode: High failure rate (~90%) during firmware upgrade
Hi team,
I am working on a firmware upgrade implementation using the ST25DV04KC NFC tag in FTM (Fast Transfer Mode).
I have successfully ported the ST25FTM library to my target microcontroller. Basic commands and demos—such as checking the board version and sending passwords—work consistently.
However, I am experiencing a severe reliability issue with the actual Firmware Upgrade process. The upgrade fails roughly 90% of the time. It only succeeds occasionally (~10% success rate). The target 8 Bit PIC18 microcontroller.
I have attached the console log of a failed session below for reference. Could you please help me identify what might be causing these frequent failures, or let me know if you need any additional logs or hardware details from my side? Thanks.
Console Logs:
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = PREPARE_PACKET
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: sendNextPacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: preparePacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 34 (256 Bytes) from Segment 0
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Middle Packet
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Data : 08 13 a0 59 a0 37 9f 2f a1 7b 9c 31 a5 1d a5 09 a5 7d a4 e1 a4 cd a4 b9 a4 69 a4 01 93 93 9b fb 98 25 97 b9 a4 cd a4 31 a5 1d a5 09 a5 f5 a4 e1 a4 fd a0 13 a0 59 a0 37 9f 31 a5 1d a5 09 a5 f5 a4 e1 a4 cd a4 a5 a4 91 a4 91 99 1d 90 4f 80 0b 00 00 00 64 00 64 00 4f 80 0b 00 00 00 64 00 64 01 6b 80 09 40 00 00 64 00 64 00 6b 80 09 40 00 00 64 00 64 01 94 1a e0 00 00 00 64 00 64 00 94 1a e0 00 00 00 64 00 64 01 00 3f f0 00 00 00 64 00 64 00 00 3f f0 00 00 00 64 00 64 01 1b 32 51 b0 00 00 64 00 64 00 1b 32 51 b0 00 00 64 00 64 01 27 6c 42 74 00 00 64 00 64 00 27 6c 42 74 00 00 64 00 64 01 00 12 ab 50 00 00 64 00 64 00 00 12 ab 50 00 00 64 00 64 01 00 27 c6 08 00 00 64 00 64 00 00 27 c6 08 00 00 64 00 64 01 e5 86 80 00 00 00 64 00 64 00 e5 86 80 00 00 00 64 00 64
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = SEND_PACKET
2026-07-09 08:49:50.631 writeMsg >> 22AA021DBF32A2685002E0FF0813A059A0379F2FA17B9C31A51DA509A57DA4E1A4CDA4B9A469A40193939BFB982597B9A4CDA431A51DA509A5F5A4E1A4FDA013A059A0379F31A51DA509A5F5A4E1A4CDA4A5A491A491991D904F800B000000640064004F800B000000640064016B8009400000640064006B800940000064006401941AE000000064006400941AE000000064006401003FF000000064006400003FF0000000640064011B3251B00000640064001B3251B0000064006401276C4274000064006400276C42740000640064010012AB500000640064000012AB500000640064010027C6080000640064000027C608000064006401E5868000000064006400E58680000000640064
2026-07-09 08:49:50.738 writeMsg << 0000
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = PREPARE_PACKET
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: sendNextPacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: preparePacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 35 (256 Bytes) from Segment 0
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Middle Packet
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Data : 08 01 c9 0d a0 00 00 00 64 00 64 00 c9 0d a0 00 00 00 64 00 64 01 09 c5 b2 7a de 00 64 00 64 00 09 c5 b2 7a de 00 64 00 64 01 1c 19 90 b5 c6 00 64 00 64 00 1c 19 90 b5 c6 00 64 00 64 01 9a 59 50 00 00 00 64 00 64 00 9a 59 50 00 00 00 64 00 64 01 7c 1d 20 00 3c 00 64 00 64 00 7c 1d 20 00 3c 00 64 00 64 01 45 43 d0 76 8e 00 64 00 64 00 45 43 d0 76 8e 00 64 00 64 01 98 58 20 00 1a 00 64 00 64 00 98 58 20 00 1a 00 64 00 64 01 00 32 f0 28 c5 00 64 00 64 00 00 32 f0 28 c5 00 64 00 64 01 00 37 42 28 00 00 64 00 64 00 00 37 42 28 00 00 64 00 64 01 bf c0 03 fc 00 00 64 00 64 00 bf c0 03 fc 00 00 64 00 64 01 d9 40 02 64 00 00 64 00 64 00 d9 40 02 64 00 00 64 00 64 01 eb 40 01 44 00 00 64 00 64 00 eb 40 01 44 00 00 64 00 64 01 ff c0 00 00 00 00 64 00 64 00 ff c0 00 00
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = SEND_PACKET
2026-07-09 08:49:50.739 writeMsg >> 22AA021DBF32A2685002E0FF0801C90DA000000064006400C90DA00000006400640109C5B27ADE006400640009C5B27ADE00640064011C1990B5C600640064001C1990B5C600640064019A5950000000640064009A5950000000640064017C1D20003C00640064007C1D20003C00640064014543D0768E00640064004543D0768E0064006401985820001A0064006400985820001A00640064010032F028C500640064000032F028C500640064010037422800006400640000374228000064006401BFC003FC000064006400BFC003FC000064006401D9400264000064006400D9400264000064006401EB400144000064006400EB400144000064006401FFC00000000064006400FFC00000
2026-07-09 08:49:50.846 writeMsg << 0000
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = PREPARE_PACKET
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: sendNextPacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: preparePacket
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 36 (256 Bytes) from Segment 0
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Middle Packet
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: Data : 08 00 00 64 00 64 01 0b 88 30 f7 10 00 64 00 64 00 0b 88 30 f7 10 00 64 00 64 01 00 3f f0 00 00 00 64 00 64 00 00 3f f0 00 00 00 64 00 64 01 00 3a 21 70 00 00 64 00 64 00 00 3a 21 70 00 00 64 00 64 01 00 2c c4 c8 00 00 64 00 64 00 00 2c c4 c8 00 00 64 00 64 01 00 0f fb fc 00 00 64 00 64 00 00 0f fb fc 00 00 64 00 64 01 00 00 0f fc 00 00 64 00 64 00 00 00 0f fc 00 00 64 00 64 01 00 00 00 03 fc 00 64 00 64 00 00 00 00 03 fc 00 64 00 64 01 7f df f0 00 00 00 64 00 64 00 7f df f0 00 00 00 64 00 64 01 9e 98 40 00 00 00 64 00 64 00 9e 98 40 00 00 00 64 00 64 01 73 15 43 70 00 00 64 00 64 00 73 15 43 70 00 00 64 00 64 01 55 15 45 50 00 00 64 00 64 00 55 15 45 50 00 00 64 00 64 01 00 00 00 03 ff 00 64 00 64 00 00 00 00 03 ff 00 64 00 64 01 00 1f f7 fc 00 00 64 00 64
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: mState = SEND_PACKET
2026-07-09 08:49:50.846 writeMsg >> 22AA021DBF32A2685002E0FF080000640064010B8830F71000640064000B8830F7100064006401003FF000000064006400003FF000000064006401003A2170000064006400003A2170000064006401002CC4C8000064006400002CC4C8000064006401000FFBFC000064006400000FFBFC00006400640100000FFC00006400640000000FFC00006400640100000003FC006400640000000003FC00640064017FDFF0000000640064007FDFF0000000640064019E9840000000640064009E9840000000640064017315437000006400640073154370000064006401551545500000640064005515455000006400640100000003FF006400640000000003FF0064006401001FF7FC0000640064
2026-07-09 08:49:50.954 writeMsg << 00010F
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog w WARNING: error during sendPacket: CMD_FAILED
2026-07-09 08:49:50.954 readDynConfig >> 22AD021DBF32A2685002E00D
2026-07-09 08:49:50.966 readDynConfig << 000085
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: MB_CTRL_Dyn:
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: MB_EN
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: RF_PUT_MSG
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: RF_CURRENT_MSG
Jul 09, 2026 8:49:50 AM com.st.st25sdk.STLog i INFO: sleep 87 ms
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 36 (resend)
2026-07-09 08:49:51.055 writeMsg >> 22AA021DBF32A2685002E0FF080000640064010B8830F71000640064000B8830F7100064006401003FF000000064006400003FF000000064006401003A2170000064006400003A2170000064006401002CC4C8000064006400002CC4C8000064006401000FFBFC000064006400000FFBFC00006400640100000FFC00006400640000000FFC00006400640100000003FC006400640000000003FC00640064017FDFF0000000640064007FDFF0000000640064019E9840000000640064009E9840000000640064017315437000006400640073154370000064006401551545500000640064005515455000006400640100000003FF006400640000000003FF0064006401001FF7FC0000640064
2026-07-09 08:49:51.162 writeMsg << 00010F
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog w WARNING: Error in resendPacket: CMD_FAILED
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 36 (resend)
2026-07-09 08:49:51.163 writeMsg >> 22AA021DBF32A2685002E0FF080000640064010B8830F71000640064000B8830F7100064006401003FF000000064006400003FF000000064006401003A2170000064006400003A2170000064006401002CC4C8000064006400002CC4C8000064006401000FFBFC000064006400000FFBFC00006400640100000FFC00006400640000000FFC00006400640100000003FC006400640000000003FC00640064017FDFF0000000640064007FDFF0000000640064019E9840000000640064009E9840000000640064017315437000006400640073154370000064006401551545500000640064005515455000006400640100000003FF006400640000000003FF0064006401001FF7FC0000640064
2026-07-09 08:49:51.27 writeMsg << 00010F
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog w WARNING: Error in resendPacket: CMD_FAILED
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog i INFO: deltaInMs = 107
Jul 09, 2026 8:49:51 AM com.st.st25sdk.STLog i INFO: ==> Send Packet 36 (resend)
2026-07-09 08:49:51.271 writeMsg >> 22AA021DBF32A2685002E0FF080000640064010B8830F71000640064000B8830F7100064006401003FF000000064006400003FF000000064006401003A2170000064006400003A2170000064006401002CC4C8000064006400002CC4C8000064006401000FFBFC000064006400000FFBFC00006400640100000FFC00006400640000000FFC00006400640100000003FC006400640000000003FC00640064017FDFF0000000640064007FDFF0000000640064019E9840000000640064009E9840000000640064017315437000006400640073154370000064006401551545500000640064005515455000006400640100000003FF006400640000000003FF0064006401001FF7FC0000640064
2026-07-09 08:49:51.378 writeMsg << 00010F
