From c3b08be5df0da0465113a50dfc5f032bc9685040 Mon Sep 17 00:00:00 2001 From: DidierA <1620015+didiera@users.noreply.github.com> Date: Thu, 18 Jun 2026 20:06:34 +0200 Subject: [PATCH 1/3] blk_num is unused, which caused build to fail. --- firmware/application/src/app_cmd.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/firmware/application/src/app_cmd.c b/firmware/application/src/app_cmd.c index 9ed12674..fd286a80 100644 --- a/firmware/application/src/app_cmd.c +++ b/firmware/application/src/app_cmd.c @@ -2502,14 +2502,12 @@ static data_frame_tx_t *cmd_processor_hf14a_4_reader_apdu(uint16_t cmd, uint16_t } /* Copy data portion (strip PCB + CRC), then handle chaining */ - uint8_t blk_num = 0; uint8_t resp_pcb = resp_buf[0]; uint8_t dlen = resp_bytes - 3; /* subtract PCB(1) + CRC(2) */ if (dlen > 0 && resp_chain_len + dlen < sizeof(resp_chain)) { memcpy(&resp_chain[resp_chain_len], &resp_buf[1], dlen); resp_chain_len += dlen; } - blk_num ^= 1; /* ISO14443-4 chaining: PCB bit5 (0x20) set means more blocks follow */ while (resp_pcb & 0x20) { @@ -2532,7 +2530,6 @@ static data_frame_tx_t *cmd_processor_hf14a_4_reader_apdu(uint16_t cmd, uint16_t memcpy(&resp_chain[resp_chain_len], &resp_buf[1], dlen); resp_chain_len += dlen; } - blk_num ^= 1; } return data_frame_make(cmd, STATUS_HF_TAG_OK, resp_chain_len, resp_chain); From 2239acdd06ebe89cab1b551f16b729cdf3dad9df Mon Sep 17 00:00:00 2001 From: DidierA <1620015+didiera@users.noreply.github.com> Date: Thu, 18 Jun 2026 20:09:12 +0200 Subject: [PATCH 2/3] nfc_tag_14a_event_callback: remove wrong parity bit computation, which failed when there was more than 7 parity bits. Fixes #444 --- firmware/application/src/rfid/nfctag/hf/nfc_14a.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/firmware/application/src/rfid/nfctag/hf/nfc_14a.c b/firmware/application/src/rfid/nfctag/hf/nfc_14a.c index 42023e35..7b37141f 100644 --- a/firmware/application/src/rfid/nfctag/hf/nfc_14a.c +++ b/firmware/application/src/rfid/nfctag/hf/nfc_14a.c @@ -682,13 +682,8 @@ void nfc_tag_14a_event_callback(nrfx_nfct_evt_t const *p_event) { uint32_t amt = NRF_NFCT->TXD.AMOUNT; uint16_t tx_bytes = (amt >> NFCT_TXD_AMOUNT_TXDATABYTES_Pos) & (NFCT_TXD_AMOUNT_TXDATABYTES_Msk >> NFCT_TXD_AMOUNT_TXDATABYTES_Pos); - uint16_t tx_bits_rem = (amt >> NFCT_TXD_AMOUNT_TXDATABITS_Pos) - & (NFCT_TXD_AMOUNT_TXDATABITS_Msk >> NFCT_TXD_AMOUNT_TXDATABITS_Pos); - uint16_t tx_bits = (tx_bits_rem > 0) - ? ((tx_bytes - 1) * 8 + tx_bits_rem) - : (tx_bytes * 8); - if (tx_bits > 0 && tx_bytes <= MAX_NFC_TX_BUFFER_SIZE) { - m_tx_sniff_cb(m_nfc_tx_buffer, tx_bits); + if (amt > 0 && tx_bytes <= MAX_NFC_TX_BUFFER_SIZE) { + m_tx_sniff_cb(m_nfc_tx_buffer, amt); } } break; From 3cba53c2b76ffa3b73a7ce4300f723113c047807 Mon Sep 17 00:00:00 2001 From: DidierA <1620015+didiera@users.noreply.github.com> Date: Thu, 18 Jun 2026 20:43:25 +0200 Subject: [PATCH 3/3] update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c75fa76f..9658a6a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log... ## [unreleased][unreleased] + - Fix wrong data reported by hf 14a sniff on frames containing more than 7 parity bits (@DidierA) - Added Jablotron LF protocol support: read, emulate and T55xx clone (@midlan) - Added IDTECK LF protocol support: tag emulation (PSK1 RF/32) and T55xx clone. No reader path yet; PSK demodulation on the envelope-only receive chain is left for a follow-up. - Added PAC/Stanley LF protocol support: read, emulate and T55xx clone (@kevihiiin, @danieltwagner)