-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Real-time LF sampling #2167
Real-time LF sampling #2167
Conversation
1. The client side doesn't handle these samples. To get the samples, you need to run socat with -x option to log the data, then plot it somewhere. 2. When starting bulk tranfer, ~3 samples will lost due to the time cost. Some of the USB transfer payload can be distributed into every sample. 3. I use the verbose option as a flag for real-time sampling
You are welcome to add an entry to the CHANGELOG.md as well |
Maybe this is caused by the
|
Interesting |
Yes I will. The commits there are only for test now. I'll clean up the code and squash the commits once everything is done. |
I am happy to see your great efforts of making the proxmark3 run better with new functions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First, great job! This looks like a clean method of using the hardware FIFO with a single collection buffer.
I do have a number of recommended changes. Some are defensive coding, which are recommended because this is a larger, multi-author project. Some are minor formatting nitpicks.
The two new usb function names ... that's a bigger discussion. I stumbled over what those functions were doing initially, and even now am not 100% sure I get it.
Finally, I could use help understanding why the decimation setting should alter the maximum bytes per USB transfer (details in discord).
Overall, I can't wait for this feature to hit release!
In cast that I miss the review advices you provided, I'll apply all of them first and rewrite the commit history as need. |
@iceman1001 Do you consider using the |
Well it looks like the |
I seriously doubt that the __builtin_expect() call will improve the loop much. and since we compile it on decently recent versions on the gcc-arm-none-eabi compilers (2018-2022 ish) across the OS platforms, we can add it. I would love to see if there is actually some gains, otherwise these hints adds more confusing when trying to read the code. |
I see |
@iceman1001 The samples can be fetched to the client now. Lines 716 to 718 in e44161b
The real-time sampling process can be stopped by pressing Enter on the client or pressing the button on PM3. It can also be stopped if it reaches the number of -s option.How can I store them into a file compatible with the .pm3 format? Is there any existing function for this?
|
@iceman1001 The real-time |
Nice!
|
Here are some bugs when
|
On Windows, `int data[640000]` crashes
I've cleaned up the commit history and made a new PR #2173. |
(moved to #2173)
The client side doesn't handle these samples. To get the samples, you need to run socat with -x option to log the data, then plot it somewhere.When starting bulk tranfer, ~3 samples will lost due to the time cost.Some of the USB transfer payload can be distributed into every sample. (Done in 523fde2)I use the verbose option as a flag for real-time sampling(-r
for real-time sampling)