+int usage_lf_em_write(void) {
+ PrintAndLog("Write EM 4x05/4x50/4x69. Tag must be on antenna. ");
+ PrintAndLog("");
+ PrintAndLog("Usage: lf em writeword [h] <address> <data> <pwd>");
+ PrintAndLog("Options:");
+ PrintAndLog(" h - this help");
+ PrintAndLog(" address - memory address to write to. (0-15)");
+ PrintAndLog(" data - data to write (hex)");
+ PrintAndLog(" pwd - password (hex) (optional)");
+ PrintAndLog("samples:");
+ PrintAndLog(" lf em writeword 1");
+ PrintAndLog(" lf em writeword 1 deadc0de 11223344");
+ return 0;
+}
+
+#define EM_PREAMBLE_LEN 6
+// download samples from device
+// and copy them to Graphbuffer
+bool downloadSamplesEM(){
+
+ // 8 bit preamble + 32 bit word response (max clock (128) * 40bits = 5120 samples)
+ uint8_t got[6000];
+ GetFromBigBuf(got, sizeof(got), 0);
+ if ( !WaitForResponseTimeout(CMD_ACK, NULL, 2500) ) {
+ PrintAndLog("command execution time out");
+ return FALSE;
+ }
+ setGraphBuf(got, sizeof(got));
+ return TRUE;
+}