- ans = GetPskClock("", FALSE, FALSE);
- if (ans>0) {
- PrintAndLog("PSK response possibly found, run `data rawd p1` to attempt to demod");
+ // more common than biphase
+ if (!demodFound) {
+ DemodBufferLen = 0x00;
+ // try manchester - NOTE: ST only applies to T55x7 tags.
+ ans = ASKDemod_ext("0,0,1", false, false, 1, false);
+ if (!ans) {
+ if (g_debugMode) PrintAndLog("DEBUG: Error - EM4305: ASK/Manchester Demod failed");
+ } else {
+ // set size to 10 to only test first 4 positions for the preamble
+ size_t size = (10 > DemodBufferLen) ? DemodBufferLen : 10;
+ size_t startIdx = 0;
+
+ if (g_debugMode) PrintAndLog("ANS: %d | %u | %u", ans, startIdx, size);
+
+ uint8_t errChk = !EMpreambleSearch(DemodBuffer, preamble, sizeof(preamble), size, &startIdx);
+ if ( errChk == 0) {
+ if (g_debugMode) PrintAndLog("DEBUG: Error - EM4305 preamble not found :: %d", startIdx);
+ } else {
+ //can't test size because the preamble doesn't repeat :(
+ //meaning chances of false positives are high.
+ demodFound = true;
+ }
+ }