mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
ADD: Enio's intuative function for the command: "hw tune", where you plot the tuning-data :)
ADD: added optional parameter to "hw tune" to show graf direct. Sample usage: "hw tune p"
This commit is contained in:
parent
06b58a94f0
commit
02306bac2d
4 changed files with 39 additions and 4 deletions
|
@ -174,7 +174,7 @@ void MeasureAntennaTuning(void)
|
||||||
|
|
||||||
LED_B_ON();
|
LED_B_ON();
|
||||||
DbpString("Measuring antenna characteristics, please wait...");
|
DbpString("Measuring antenna characteristics, please wait...");
|
||||||
memset(dest,0,sizeof(FREE_BUFFER_SIZE));
|
memset(dest,0,FREE_BUFFER_SIZE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sweeps the useful LF range of the proxmark from
|
* Sweeps the useful LF range of the proxmark from
|
||||||
|
|
|
@ -475,6 +475,25 @@ int CmdSamples(const char *Cmd)
|
||||||
RepaintGraphWindow();
|
RepaintGraphWindow();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int CmdTuneSamples(const char *Cmd)
|
||||||
|
{
|
||||||
|
int cnt = 0;
|
||||||
|
int n = 255;
|
||||||
|
uint8_t got[255] = {0x00};
|
||||||
|
|
||||||
|
PrintAndLog("Reading %d samples\n", n);
|
||||||
|
GetFromBigBuf(got,n,7256); // armsrc/apps.h: #define FREE_BUFFER_OFFSET 7256
|
||||||
|
WaitForResponse(CMD_ACK,NULL);
|
||||||
|
for (int j = 0; j < n; j++) {
|
||||||
|
GraphBuffer[cnt++] = ((int)got[j]) - 128;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrintAndLog("Done! Divisor 89 is 134khz, 95 is 125khz.\n");
|
||||||
|
GraphTraceLen = n;
|
||||||
|
RepaintGraphWindow();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int CmdLoad(const char *Cmd)
|
int CmdLoad(const char *Cmd)
|
||||||
{
|
{
|
||||||
|
@ -909,6 +928,7 @@ static command_t CommandTable[] =
|
||||||
{"buffclear", CmdBuffClear, 1, "Clear sample buffer and graph window"},
|
{"buffclear", CmdBuffClear, 1, "Clear sample buffer and graph window"},
|
||||||
{"dec", CmdDec, 1, "Decimate samples"},
|
{"dec", CmdDec, 1, "Decimate samples"},
|
||||||
{"detectclock", CmdDetectClockRate, 1, "Detect clock rate"},
|
{"detectclock", CmdDetectClockRate, 1, "Detect clock rate"},
|
||||||
|
{"dirthreshold", CmdDirectionalThreshold, 1, "<thres up> <thres down> -- Max rising higher up-thres/ Min falling lower down-thres, keep rest as prev."},
|
||||||
{"fskdemod", CmdFSKdemod, 1, "Demodulate graph window as a HID FSK"},
|
{"fskdemod", CmdFSKdemod, 1, "Demodulate graph window as a HID FSK"},
|
||||||
{"grid", CmdGrid, 1, "<x> <y> -- overlay grid on graph window, use zero value to turn off either"},
|
{"grid", CmdGrid, 1, "<x> <y> -- overlay grid on graph window, use zero value to turn off either"},
|
||||||
{"hexsamples", CmdHexsamples, 0, "<bytes> [<offset>] -- Dump big buffer as hex bytes"},
|
{"hexsamples", CmdHexsamples, 0, "<bytes> [<offset>] -- Dump big buffer as hex bytes"},
|
||||||
|
@ -924,8 +944,8 @@ static command_t CommandTable[] =
|
||||||
{"save", CmdSave, 1, "<filename> -- Save trace (from graph window)"},
|
{"save", CmdSave, 1, "<filename> -- Save trace (from graph window)"},
|
||||||
{"scale", CmdScale, 1, "<int> -- Set cursor display scale"},
|
{"scale", CmdScale, 1, "<int> -- Set cursor display scale"},
|
||||||
{"threshold", CmdThreshold, 1, "<threshold> -- Maximize/minimize every value in the graph window depending on threshold"},
|
{"threshold", CmdThreshold, 1, "<threshold> -- Maximize/minimize every value in the graph window depending on threshold"},
|
||||||
|
{"tune", CmdTuneSamples, 0, "Get hw tune samples for graph window"},
|
||||||
{"zerocrossings", CmdZerocrossings, 1, "Count time between zero-crossings"},
|
{"zerocrossings", CmdZerocrossings, 1, "Count time between zero-crossings"},
|
||||||
{"dirthreshold", CmdDirectionalThreshold, 1, "<thres up> <thres down> -- Max rising higher up-thres/ Min falling lower down-thres, keep rest as prev."},
|
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -40,5 +40,5 @@ int CmdScale(const char *Cmd);
|
||||||
int CmdThreshold(const char *Cmd);
|
int CmdThreshold(const char *Cmd);
|
||||||
int CmdDirectionalThreshold(const char *Cmd);
|
int CmdDirectionalThreshold(const char *Cmd);
|
||||||
int CmdZerocrossings(const char *Cmd);
|
int CmdZerocrossings(const char *Cmd);
|
||||||
|
int CmdTuneSamples(const char *Cmd);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "proxmark3.h"
|
#include "proxmark3.h"
|
||||||
#include "cmdparser.h"
|
#include "cmdparser.h"
|
||||||
|
#include "cmddata.h"
|
||||||
#include "cmdhw.h"
|
#include "cmdhw.h"
|
||||||
#include "cmdmain.h"
|
#include "cmdmain.h"
|
||||||
|
|
||||||
|
@ -392,6 +393,20 @@ int CmdTune(const char *Cmd)
|
||||||
{
|
{
|
||||||
UsbCommand c = {CMD_MEASURE_ANTENNA_TUNING};
|
UsbCommand c = {CMD_MEASURE_ANTENNA_TUNING};
|
||||||
SendCommand(&c);
|
SendCommand(&c);
|
||||||
|
|
||||||
|
char cmdp = param_getchar(Cmd, 0);
|
||||||
|
if (cmdp == 'h' || cmdp == 'H') {
|
||||||
|
PrintAndLog("Usage: hw tune <p>");
|
||||||
|
PrintAndLog("");
|
||||||
|
PrintAndLog(" sample: hw tune");
|
||||||
|
PrintAndLog(" hw tune p");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( cmdp == 'p' || cmdp == 'P'){
|
||||||
|
ShowGraphWindow();
|
||||||
|
CmdTuneSamples("");
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue