From b7f9e3c41d4f150a0306906ddc065aceed28a96f Mon Sep 17 00:00:00 2001 From: "Aaron Tulino (Aaronjamt)" Date: Mon, 22 Dec 2025 14:11:59 -0700 Subject: [PATCH] Correct ATS in `iso14443a` Turns out, at least for HID RevE readers, the ATS value must specify FSC=256 or it won't read. --- armsrc/iso14443a.c | 1 + armsrc/seos.c | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index ae0d1a16e..e7ce4b7d9 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -1368,6 +1368,7 @@ bool SimulateIso14443aInit(uint8_t tagType, uint16_t flags, uint8_t *data, } case 12: { // HID Seos 4K card rATQA[0] = 0x01; + rATS[1] = 0x78; // FSC=256 required sak = 0x20; break; } diff --git a/armsrc/seos.c b/armsrc/seos.c index 7a6180b7e..1e37605b5 100644 --- a/armsrc/seos.c +++ b/armsrc/seos.c @@ -264,12 +264,8 @@ void SimulateSeos(seos_emulate_req_t *msg) { memcpy(data, msg->uid, msg->uid_len); FLAG_SET_UID_IN_DATA(flags, msg->uid_len); - // TODO: Is this required? - uint8_t ats[] = { 0x05, 0x78, 0x77, 0x80, 0x02 }; - flags |= FLAG_ATS_IN_DATA; - // 12 = HID Seos 4K card - if (SimulateIso14443aInit(12, flags, data, ats, sizeof(ats), &responses, &cuid, NULL, NULL) == false) { + if (SimulateIso14443aInit(12, flags, data, NULL, 0, &responses, &cuid, NULL, NULL) == false) { BigBuf_free_keep_EM(); reply_ng(CMD_HF_SEOS_SIMULATE, PM3_EINIT, NULL, 0); return;