From 30364d271166fd7359ff88d4b4fc22d63395ed9d Mon Sep 17 00:00:00 2001
From: pwpiwi <pwpiwi@users.noreply.github.com>
Date: Mon, 9 Mar 2015 20:01:37 +0100
Subject: [PATCH 1/2] fix: broken edge detector implementation in
 hi_iso14443a.v resulted in decreased sensitivity

---
 fpga/fpga_hf.bit    | Bin 42175 -> 42175 bytes
 fpga/hi_iso14443a.v |  61 ++++++++++++++++++++------------------------
 2 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/fpga/fpga_hf.bit b/fpga/fpga_hf.bit
index 4910e6ac50d6e3cb405bacee3eef47de443b0147..20fb2bd4401254d899d6273451bfccbd827f562b 100644
GIT binary patch
literal 42175
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

literal 42175
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
S@ZWLO0seoql9uvb@_zvy&2EtZ

diff --git a/fpga/hi_iso14443a.v b/fpga/hi_iso14443a.v
index 46adda12c..ccb51d8fb 100644
--- a/fpga/hi_iso14443a.v
+++ b/fpga/hi_iso14443a.v
@@ -112,34 +112,26 @@ end
 // for noise reduction and edge detection.
 // store 4 previous samples:
 reg [7:0] input_prev_4, input_prev_3, input_prev_2, input_prev_1;
-// convert to signed signals (and multiply by two for samples at t-4 and t)
-wire signed [10:0] input_prev_4_times_2 = {0, 0, input_prev_4, 0};
-wire signed [10:0] input_prev_3_times_1 = {0, 0, 0, input_prev_3};
-wire signed [10:0] input_prev_1_times_1 = {0, 0, 0, input_prev_1};
-wire signed [10:0] adc_d_times_2 = {0, 0, adc_d, 0}; 
 
-wire signed [10:0] tmp_1, tmp_2;
-wire signed [10:0] adc_d_filtered;
-integer i;
-
-assign	tmp_1 = input_prev_4_times_2 + input_prev_3_times_1;
-assign	tmp_2 = input_prev_1_times_1 + adc_d_times_2;
-	
 always @(negedge adc_clk)
 begin
-	// for (i = 3; i > 0; i = i - 1)
-	// begin
-		// input_shift[i] <= input_shift[i-1];
-	// end
-	// input_shift[0] <= adc_d;
 	input_prev_4 <= input_prev_3;
 	input_prev_3 <= input_prev_2;
 	input_prev_2 <= input_prev_1;
 	input_prev_1 <= adc_d;
 end	
 
-// assign adc_d_filtered = (input_shift[3] << 1) + input_shift[2] - input_shift[0] - (adc_d << 1);
-assign adc_d_filtered = tmp_1 - tmp_2;
+// adc_d_filtered = 2*input_prev4 + 1*input_prev3 + 0*input_prev2 - 1*input_prev1 - 2*input
+//					= (2*input_prev4 + input_prev3) - (2*input + input_prev1) 
+wire [8:0] input_prev_4_times_2 = input_prev_4 << 1;
+wire [8:0] adc_d_times_2 		= adc_d << 1;
+
+wire [9:0] tmp1 = input_prev_4_times_2 + input_prev_3;
+wire [9:0] tmp2 = adc_d_times_2 + input_prev_1;
+
+// convert intermediate signals to signed and calculate the filter output
+wire signed [10:0] adc_d_filtered = {1'b0, tmp1} - {1'b0, tmp2};
+
 
 	
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -194,11 +186,13 @@ reg [3:0] mod_detect_reset_time;
 always @(negedge adc_clk)
 begin
 	if (mod_type == `READER_LISTEN) 
-	// (our) reader signal changes at t=1, tag response expected n*16+4 ticks later, further delayed by
-	// 3 ticks ADC conversion.
-	// 1 + 4 + 3 = 8
+	// (our) reader signal changes at negedge_cnt[3:0]=9, tag response expected to start n*16+4 ticks later, further delayed by
+	// 3 ticks ADC conversion. The maximum filter output (edge detected) will be detected after subcarrier zero crossing (+7 ticks).
+	// To allow some timing variances, we want to have the maximum filter outputs well within the detection window, i.e.
+	// at mod_detect_reset_time+4 and mod_detect_reset_time+12  (-4 ticks).
+	// 9 + 4 + 3 + 7 - 4  = 19.    19 mod 16 = 3
 	begin
-		mod_detect_reset_time <= 4'd8;
+		mod_detect_reset_time <= 4'd4;
 	end
 	else
 	if (mod_type == `SNIFFER)
@@ -207,10 +201,10 @@ begin
 		if (~pre_after_hysteresis && after_hysteresis && deep_modulation)
 		// reader signal rising edge detected at negedge_cnt[3:0]. This signal had been delayed 
 		// 9 ticks by the RF part + 3 ticks by the A/D converter + 1 tick to assign to after_hysteresis.
-		// The tag will respond n*16 + 4 ticks later + 3 ticks A/D converter delay.
-		// - 9 - 3 - 1 + 4 + 3 = -6
+		// Then the same as above.
+		// - 9 - 3 - 1 + 4 + 3 + 7 - 4 = -3
 		begin
-			mod_detect_reset_time <= negedge_cnt[3:0] - 4'd4;
+			mod_detect_reset_time <= negedge_cnt[3:0] - 4'd3;
 		end
 	end
 end
@@ -224,12 +218,14 @@ reg signed [10:0] rx_mod_falling_edge_max;
 reg signed [10:0] rx_mod_rising_edge_max;
 reg curbit;
 
+`define EDGE_DETECT_THRESHOLD	5
+
 always @(negedge adc_clk)
 begin
 	if(negedge_cnt[3:0] == mod_detect_reset_time)
 	begin
 		// detect modulation signal: if modulating, there must have been a falling AND a rising edge
-		if (rx_mod_falling_edge_max > 5 && rx_mod_rising_edge_max > 5)
+		if ((rx_mod_falling_edge_max > `EDGE_DETECT_THRESHOLD) && (rx_mod_rising_edge_max < -`EDGE_DETECT_THRESHOLD))
 				curbit <= 1'b1;	// modulation
 			else
 				curbit <= 1'b0;	// no modulation
@@ -246,8 +242,8 @@ begin
 		end
 		else
 		begin
-			if (-adc_d_filtered > rx_mod_rising_edge_max)
-				rx_mod_rising_edge_max <= -adc_d_filtered;
+			if (adc_d_filtered < rx_mod_rising_edge_max)
+				rx_mod_rising_edge_max <= adc_d_filtered;
 		end
 	end
 
@@ -273,7 +269,7 @@ end
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// PM3 -> Tag:
+// PM3 -> Reader:
 // a delay line to ensure that we send the (emulated) tag's answer at the correct time according to ISO14443-3
 reg [31:0] mod_sig_buf;
 reg [4:0] mod_sig_ptr;
@@ -297,7 +293,7 @@ end
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// PM3 -> Tag, internal timing:
+// PM3 -> Reader, internal timing:
 // a timer for the 1172 cycles fdt (Frame Delay Time). Start the timer with a rising edge of the reader's signal.
 // set fdt_elapsed when we no longer need to delay data. Set fdt_indicator when we can start sending data.
 // Note: the FPGA only takes care for the 1172 delay. To achieve an additional 1236-1172=64 ticks delay, the ARM must send
@@ -477,11 +473,10 @@ end
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// FPGA -> ARM communication:
+// FPGA <-> ARM communication:
 // generate a ssp clock and ssp frame signal for the synchronous transfer from/to the ARM
 reg ssp_clk;
 reg ssp_frame;
-reg [2:0] ssp_frame_counter;
 
 always @(negedge adc_clk)
 begin

From 16a95d76ac51d07ca56ecf6761fc3a2155bf93a9 Mon Sep 17 00:00:00 2001
From: pwpiwi <pwpiwi@users.noreply.github.com>
Date: Mon, 9 Mar 2015 21:36:27 +0100
Subject: [PATCH 2/2] fix: (issue #73) hf mf cload didn't work. Add more
 annotations for Magic Cards operation.

---
 client/cmdhf.c     | 28 +++++++++++++++-------------
 client/cmdhfmf.c   | 15 +++++++--------
 common/protocols.h |  4 +++-
 3 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/client/cmdhf.c b/client/cmdhf.c
index 074a37e28..22063bbbe 100644
--- a/client/cmdhf.c
+++ b/client/cmdhf.c
@@ -62,19 +62,21 @@ void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
 			snprintf(exp,size,"ANTICOLL-2"); break;
 		}
 	}
-	case ISO14443A_CMD_REQA:       snprintf(exp,size,"REQA"); break;
-	case ISO14443A_CMD_READBLOCK:  snprintf(exp,size,"READBLOCK(%d)",cmd[1]); break;
-	case ISO14443A_CMD_WRITEBLOCK: snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); break;
-	case ISO14443A_CMD_HALT:       snprintf(exp,size,"HALT"); break;
-	case ISO14443A_CMD_RATS:       snprintf(exp,size,"RATS"); break;
-	case MIFARE_CMD_INC:          snprintf(exp,size,"INC(%d)",cmd[1]); break;
-	case MIFARE_CMD_DEC:          snprintf(exp,size,"DEC(%d)",cmd[1]); break;
-	case MIFARE_CMD_RESTORE:      snprintf(exp,size,"RESTORE(%d)",cmd[1]); break;
-	case MIFARE_CMD_TRANSFER:     snprintf(exp,size,"TRANSFER(%d)",cmd[1]); break;
-	case MIFARE_AUTH_KEYA:        snprintf(exp,size,"AUTH-A(%d)",cmd[1]); break;
-	case MIFARE_AUTH_KEYB:        snprintf(exp,size,"AUTH-B(%d)",cmd[1]); break;
-	case MIFARE_MAGICMODE:        snprintf(exp,size,"MAGIC"); break;
-	default:                      snprintf(exp,size,"?"); break;
+	case ISO14443A_CMD_REQA:		snprintf(exp,size,"REQA"); break;
+	case ISO14443A_CMD_READBLOCK:	snprintf(exp,size,"READBLOCK(%d)",cmd[1]); break;
+	case ISO14443A_CMD_WRITEBLOCK:	snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); break;
+	case ISO14443A_CMD_HALT:		snprintf(exp,size,"HALT"); break;
+	case ISO14443A_CMD_RATS:		snprintf(exp,size,"RATS"); break;
+	case MIFARE_CMD_INC:			snprintf(exp,size,"INC(%d)",cmd[1]); break;
+	case MIFARE_CMD_DEC:			snprintf(exp,size,"DEC(%d)",cmd[1]); break;
+	case MIFARE_CMD_RESTORE:		snprintf(exp,size,"RESTORE(%d)",cmd[1]); break;
+	case MIFARE_CMD_TRANSFER:		snprintf(exp,size,"TRANSFER(%d)",cmd[1]); break;
+	case MIFARE_AUTH_KEYA:			snprintf(exp,size,"AUTH-A(%d)",cmd[1]); break;
+	case MIFARE_AUTH_KEYB:			snprintf(exp,size,"AUTH-B(%d)",cmd[1]); break;
+	case MIFARE_MAGICWUPC1:			snprintf(exp,size,"MAGIC WUPC1"); break;
+	case MIFARE_MAGICWUPC2:			snprintf(exp,size,"MAGIC WUPC2"); break;
+	case MIFARE_MAGICWIPEC:			snprintf(exp,size,"MAGIC WIPEC"); break;
+	default:						snprintf(exp,size,"?"); break;
 	}
 	return;
 }
diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c
index d0852ea5b..c16b96741 100644
--- a/client/cmdhfmf.c
+++ b/client/cmdhfmf.c
@@ -1554,15 +1554,14 @@ int CmdHF14AMfCLoad(const char *Cmd)
 	if (ctmp == 'e' || ctmp == 'E') fillFromEmulator = 1;
 	
 	if (fillFromEmulator) {
-		flags = CSETBLOCK_INIT_FIELD + CSETBLOCK_WUPC;
 		for (blockNum = 0; blockNum < 16 * 4; blockNum += 1) {
 			if (mfEmlGetMem(buf8, blockNum, 1)) {
 				PrintAndLog("Cant get block: %d", blockNum);
 				return 2;
 			}
-			
-			if (blockNum == 2) flags = 0;
-			if (blockNum == 16 * 4 - 1) flags = CSETBLOCK_HALT + CSETBLOCK_RESET_FIELD;
+			if (blockNum == 0) flags = CSETBLOCK_INIT_FIELD + CSETBLOCK_WUPC;				// switch on field and send magic sequence
+			if (blockNum == 1) flags = 0;													// just write
+			if (blockNum == 16 * 4 - 1) flags = CSETBLOCK_HALT + CSETBLOCK_RESET_FIELD;		// Done. Magic Halt and switch off field.
 
 			if (mfCSetBlock(blockNum, buf8, NULL, 0, flags)) {
 				PrintAndLog("Cant set magic card block: %d", blockNum);
@@ -1587,7 +1586,6 @@ int CmdHF14AMfCLoad(const char *Cmd)
 		}
 	
 		blockNum = 0;
-		flags = CSETBLOCK_INIT_FIELD + CSETBLOCK_WUPC;
 		while(!feof(f)){
 		
 			memset(buf, 0, sizeof(buf));
@@ -1597,7 +1595,7 @@ int CmdHF14AMfCLoad(const char *Cmd)
 				return 2;
 			}
 
-			if (strlen(buf) < 32){
+			if (strlen(buf) < 32) {
 				if(strlen(buf) && feof(f))
 					break;
 				PrintAndLog("File content error. Block data must include 32 HEX symbols");
@@ -1606,8 +1604,9 @@ int CmdHF14AMfCLoad(const char *Cmd)
 			for (i = 0; i < 32; i += 2)
 				sscanf(&buf[i], "%02x", (unsigned int *)&buf8[i / 2]);
 
-			if (blockNum == 2) flags = 0;
-			if (blockNum == 16 * 4 - 1) flags = CSETBLOCK_HALT + CSETBLOCK_RESET_FIELD;
+			if (blockNum == 0) flags = CSETBLOCK_INIT_FIELD + CSETBLOCK_WUPC;				// switch on field and send magic sequence
+			if (blockNum == 1) flags = 0;													// just write
+			if (blockNum == 16 * 4 - 1) flags = CSETBLOCK_HALT + CSETBLOCK_RESET_FIELD;		// Done. Switch off field.
 
 			if (mfCSetBlock(blockNum, buf8, NULL, 0, flags)) {
 				PrintAndLog("Can't set magic card block: %d", blockNum);
diff --git a/common/protocols.h b/common/protocols.h
index 1dd661850..01b738c2b 100644
--- a/common/protocols.h
+++ b/common/protocols.h
@@ -115,7 +115,9 @@ NXP/Philips CUSTOM COMMANDS
 
 #define MIFARE_AUTH_KEYA	    0x60
 #define MIFARE_AUTH_KEYB	    0x61
-#define MIFARE_MAGICMODE	    0x40
+#define MIFARE_MAGICWUPC1	    0x40
+#define MIFARE_MAGICWUPC2		0x43
+#define MIFARE_MAGICWIPEC		0x41
 #define MIFARE_CMD_INC          0xC0
 #define MIFARE_CMD_DEC          0xC1
 #define MIFARE_CMD_RESTORE      0xC2